在終端機中使用 cp 指令時如何避免複製“..”?

在終端機中使用 cp 指令時如何避免複製“..”?

我使用的是 CentOS7,當我使用指令時

cp /root/test/.* /root/test1

它還複製..,複製來源父目錄中的所有檔案和資料夾。

如何避免複製...

答案1

問題中沒有明確說明是否要複製僅有的隱藏名稱,或您是否想要複製所有檔案。同樣,是否要複製任何子目錄的內容。我假設你想複製僅有的隱藏名稱是當前目錄(因為您似乎想要使用命令執行此操作)。

您的命令不會複製父目錄中的所有文件,除非您也使用-R選項 with cp(或-rwith GNU cp)來執行遞歸複製。如果沒有該-R選項,cp則會抱怨...是目錄,但不會複製它們。

bashshell 中,將GLOBIGNOREshell 變數設定為:您不希望 shell 將檔案名稱通配模式擴展為的 - 分隔名稱列表,

GLOBIGNORE='.:..'

然後複製你的文件,

cp /root/test/.* /root/test1

若要臨時設置GLOBIGNORE,僅用於複製操作,請使用子 shell:

( GLOBIGNORE='.:..'; cp /root/test/.* /root/test1 )

答案2

通配以點開頭的所有名稱(除了.和 )的標準習慣用法...??*。所以你的命令是

cp /root/test/.??* /root/test1

相關內容