複製檔案與目錄scp 指令的語法跟一般的 cp 類似,只不過 scp 可以在不同的 Linux 主機之間複製檔案,其語法為:
scp [帳號@來源主機]:來源檔案 [帳號@目的主機]:目的檔案 這裡的帳號就是登入主機上的帳號(類似 ssh 指令的用法),如果省略帳號與主機,只寫一般的檔案路徑的話,就是代表本機的檔案。 例如將本地端的 /path/file1 複製到 192.168.0.1 這台主機上的 /path/file2 ,而登入 192.168.0.1 這台主機時,是以 myuser 這個帳號登入:
scp /path/file1 [email protected]:/path/file2 也可以把遠端的檔案複製到本地端:
scp [email protected]:/path/file2 /path/file1 這樣就會用 myuser 這個帳號登入 192.168.0.1 ,將遠端主機上的 /path/file2 複製到 /path/file1 。 如果本地端的使用者帳號名稱剛好跟遠端的使用者帳號一樣,也可以將使用者帳號省略,例如:
scp /path/file1 192.168.0.1:/path/file2 反過來也是類似:
scp 192.168.0.1:/path/file2 /path/file1 複製目錄若要複製整個目錄以及其下的所有檔案,則加上 -r 參數:
scp -r /path/folder1 [email protected]:/path/folder2 保留檔案時間與權限若要讓檔案在複製之後,還可保留原本的修改時間、存取時間與權限,可以加上 -p 參數:
scp -p /path/file1 [email protected]:/path/file2 資料壓縮若要將資料壓縮之後再傳送,減少網路頻寬的使用量,可以加上 -C 參數:
scp -C /path/file1 [email protected]:/path/file2 限制傳輸速度若要限制網路的使用頻寬,可以用 -l 指定可用的網路頻寬上限值(單位為 Kbit/s):
scp -l 400 /path/file1 [email protected]:/path/file2 這樣就會限制 scp 只能使用 400 Kbit/s,也就是 400 / 8 = 50 KB/s。 自訂連接埠一般 SSH 伺服器的連接埠號為 22,如果遇到使用非標準埠號的伺服器,可以用 -P 來指定埠號。若遠端的 SSH 伺服器使用 2222 這個連接埠,我們就可以這樣複製檔案:
scp -P 2222 /path/file1 [email protected]:/path/file2 IPv4 與 IPv6-4 與 -6 兩個參數分別可以讓 scp 使用 IPv4 與 IPv6 來傳輸資料:
scp -4 /path/file1 [email protected]:/path/file2
scp -6 /path/file1 [email protected]:/path/file2
|