putty對Linux上傳下載文件或文件夾
putty是一個開源軟件,目前為止最新版本為0.70。對於文件或文件夾的上傳下載,在Windows下它提供了pscp和psftp兩個命令。
(1).pscp
pscp在命令提示符中使用,只要putty(ssh)能夠遠程,就能使用該命令。
pscp [Windows上的路徑,可絕對可相對] [Linux用戶]@[Linux的IP地址或網絡內唯一主機名]:[Linux上存放地址,絕對路徑] pscp [Linux用戶]@[Linux的IP地址或網絡內唯一主機名]:[Linux上存放地址,絕對路徑] [Windows上的路徑,可絕對可相對]
Windows路徑在前,是Windows向Linux上傳文件。Linux路徑在前,則是Windows向Linux請求下載文件。
另外pscp後面還可以跟隨選項,這裏只介紹6個常用選項
-p 拷貝文件的時候保留源文件建立的時間。 -q 執行文件拷貝時,不顯示任何提示消息。 -r 拷貝整個目錄 -v 拷貝文件時,顯示提示信息。
-sftp 強制使用sftp協議
-scp 強制使用scp協議
下面做一個實例,使用pscp拷貝一個文件夾
C:\Users\xuefei>pscp -r [email protected]:/root/extundelete-0.2.4 [email protected]‘s password: config.h | 5 kB | 5.0 kB/s | ETA: 00:00:00 | 100% LICENSE | 17 kB | 17.6 kB/s | ETA: 00:00:00 | 100% configure | 226 kB | 226.1 kB/s | ETA: 00:00:00 | 100% missing | 10 kB | 10.1 kB/s | ETA: 00:00:00 | 100% extundelete-extundelete.o | 1600 kB | 1600.2 kB/s | ETA: 00:00:00 | 100%
跑完之後我的桌面就會多出一個名為extundelete-0.2.4的文件夾。但是,由於Linux與Windows編碼問題,如果出現漢字名稱或文件內容有漢字,那將會非常糟糕。
如果是Windows上傳雖然會有亂碼,但還可以通過convmv和iconv處理(詳見:從Windows復制文件到Linux顯示亂碼問題)
如果Windows下載的文件名有亂碼,會發現找不到這個文件或文件夾(至少我不知道怎麽做)。
(2).psftp
psftp也可以在命令提示符中使用,不過putty也給出了一個接口圖標直接打開使用。
這是就有使用時的三種情況:
第一種、在命令提示符中,使用psftp [Linux用戶]@[Linux的IP地址或網絡內唯一主機名]轉到psftp模式下(此時已經連接Linux)。另外此時Windows默認上傳下載地址為轉入psftp模式前所在的地址,例如C:\Users\xuefei>psftp [email protected],它的默認下載地址就是C:\Users\xuefei。
第二種、在命令提示符中,使用psftp轉到psftp模式下(此時沒有連接Linux)。想要連接到Linux服務器就必須在psftp模式下執行open [Linux用戶]@[Linux的IP地址或網絡內唯一主機名]。另外和第一種一樣,此時Windows默認上傳下載地址為轉入psftp模式前所在的地址。
第三種、使用putty提供的接口圖標PSFTP直接打開,會直接轉到psftp模式下(此時沒有連接到Linux)。和第二種一樣,想要連接到Linux服務器就必須在psftp模式下執行open [Linux用戶]@[Linux的IP地址或網絡內唯一主機名]。默認的下載地址是軟件安裝目錄。
註意:如果不是以超級管理員權限打開命令提示符或接口圖標PSFTP,那麽系統盤下部分文件是不允許上傳,並且部分地址不允許存放下載文件。
下面說一下psftp的幾個常用選項
put 上傳文件,目錄需要加-r get 下載文件,目錄需要加-r mput 上傳多個文件 mget 下載多個文件 cd 服務器端移動路徑 pwd 顯示服務器端當前所在路徑 lcd 本地端移動路徑 lpwd 顯示本地端當前所在路徑
下面做一個實例,上傳一個目錄
C:\Users\xuefei>psftp [email protected] Using username "root". [email protected]‘s password: Remote working directory is /root psftp> lcd Desktop\ //調整本地端路徑 New local directory is C:\Users\xuefei\Desktop psftp> put extundelete-0.2.4 //可以看到但有put是不行的 local: unable to open extundelete-0.2.4 psftp> mput extundelete-0.2.4 //mput一樣不行 local: unable to open extundelete-0.2.4 psftp> put -r extundelete-0.2.4 //只有put -r才可以上傳目錄
再做一個實例,下載多個文件
psftp> mget 1 install.log install.log.syslog remote:/root/1 => local:1 remote:/root/install.log => local:install.log remote:/root/install.log.syslog => local:install.log.syslog
上傳下載單個文件或文件夾還可以重命名
psftp> get -r extundelete-0.2.4 1 //下載單個文件夾,重命名為1 remote:/root/extundelete-0.2.4/LICENSE => local:1\LICENSE remote:/root/extundelete-0.2.4/Makefile => local:1\Makefile remote:/root/extundelete-0.2.4/Makefile.am => local:1\Makefile.am psftp> get 1 2 //單個文件,重命名2 remote:/root/1 => local:2
上傳下載單個文件或文件夾還可以給出絕對路徑,保存到指定地址
psftp> get 1 D:\1 //一定要有重命名,不然無法指定地址 remote:/root/1 => local:D:\1
和上面的pscp一樣,漢字問題依然存在。而且問題一模一樣。
putty對Linux上傳下載文件或文件夾