Copy files over SSH

From Jwiki


Efficient File Transfer with Tar and SSH

Quickly transfer directories over SSH using tar. Great for migrations or backups.

Commands

Local to remote:

tar cjf - -C /path/to/local/ <source-dir> | ssh user@remote-host 'tar xjf - -C /path/to/remote/ <target-dir>'

Remote to local:

ssh user@remote-host 'tar cjf - -C /path/to/remote/ <source-dir>' | tar xjf - -C /path/to/local/ <target-dir>

Notes

  • Add --exclude='pattern' to skip files or directories.
  • Replace j with z (i.e., czf, xzf) to use gzip for faster, but less compressed, transfers.