linux下複製目錄下所有文件,包括隱藏文件到指定目錄

linux下複製當前目錄下面文件到目錄b的話:

cp -rf * b

這樣子只能複製非隱藏文件和目錄。

cp -rf .* b

因爲.*包含了.和..,這樣子複製會出問題,當前目錄的上一層目錄都可能被複制過去。


這裏可以藉助ls -A命令,來過濾.和..目錄並且包含其他隱藏文件和目錄,命令如下:

cp -rf `ls -A1 --color=never` b


--color=never選項是爲了關閉ls的彩色顯示,一般都是打開的,如果打開了,會包含彩色顯示的轉義字符,cp命令會提示找不到文件。

-1選項,讓ls一行只顯示一個文件或目錄名,僅是爲看着舒服,這裏加不加都不影響。


如果已經將非隱藏的文件或目錄複製過去了,僅想複製隱藏的文件和目錄,有兩種方式:


  • 一般可以給cp加上-u參數,這個參數只會複製目標目錄下不存在的文件,

或者目標目錄下存在,但當前目錄下更新的文件。

即:

cp -urf `ls -A1 --color=never` b
  • 可以用`ls -d .[^.]* --color=never`來得到當前目錄下隱藏文件和目錄,-d不展開目錄顯示,.[^.]*匹配當前目錄下以.開頭的文件和目錄。

即:

cp -rf `ls -d .[^.]* --color=never` b




發佈了53 篇原創文章 · 獲贊 12 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章