Directory

幫助我理解這個文件規範語法

  • September 25, 2022

我第一次將使用者文件從舊系統移動到新系統。我的目標是使用 SCP 的簡單語法scp -r source destination。我嘗試使用以下命令首先複製文件:

scp -r root@10.0.0.11:/home/someuser/* .

回想起來,根據過去的經驗,這複製了所有沒有前導.. 在我試圖解決這個問題時,我這樣做了:

scp -r root@10.0.0.11:/home/someuser/.* .

表示以 . 開頭的任何內容的萬用字元.。顯然(為什麼我要問這個問題)它沒有做我想要的。觀察到的結果是,它將 解釋.為在路徑中向上移動了一個級別,而是開始複製/home/*,而且(我認為)將文件從我的工作目錄而不是工作目錄本身放在了上一級。

我對執行第二個命令的解釋是否正確?我認為自從我進入以來它很容易修復~/backup,所以升級了一個級別~。我只是rm -rf ~/someuser在中斷命令之前複製的每個使用者名上。這些someuser目錄應該在~/backup

從那以後,我學會瞭如何通過僅指定目錄而不是目錄中包含的文件來複製我想要的文件。

這不是.提高一個級別,而是通過一個簡單的匹配,.*匹配..每個目錄中存在的條目並指向下一個上級目錄。ls .*你可以用類似Bash的東西得到同樣的結果。

匹配.*特殊條目是一種永遠不會有用的痛苦...幸運的是,像 zsh 這樣的一些智能程序將它們從 glob 結果中刪除。

在這裡,增加了複雜性,即擴展 glob 的是 SSH 伺服器。

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