Shell

scp 把這些文件放在哪裡了?

  • February 29, 2012

我執行了一個scp命令從 SSH 伺服器下載一些文件。我沒有使用 將.其放入目前文件夾,而是不小心輸入了*. 看起來 scp 複製了文件並將它們放在某個地方。我的命令與此類似:

$moshe> scp username@server.com:~/SomeDirectory/SubDir/* *

我的意思是輸入更像這樣的內容:

$moshe> scp username@server.com:~/SomeDirectory/SubDir/* .

他們會在哪裡?

您的 shell 將擴展*至目前目錄中的所有文件。scp需要多個源文件和一個目標路徑(與 相同cp),因此它將複製username@server.com:~/SomeDirectory/Subdir/*目前目錄中除最後一個之外的所有文件到最後一個。所以,假設目前目錄中的文件列表沒有改變,檢查最後列出的是哪個目錄:

$ ls | tail -1

它將它們放在目前目錄的一個子目錄中。

例如,如果您的目前目錄類似於:

[andcoz@...] ~/test> ls -F
e  f  r  s  v  w  Z/

注意 Z 是一個目錄。當你寫:

scp username@server.com:~/SomeDirectory/SubDir/* *

shell 擴展會將您的命令轉換為:

scp username@server.com:~/SomeDirectory/SubDir/* e  f  r  s  v  w  Z 

因此,您來自遠端電腦的所有文件和所有本地目錄文件都將復製到Z目錄中。

引用自:https://unix.stackexchange.com/questions/32967