linux下複製當前目錄下面文件到目錄b的話:
cp -rf * b
這樣子只能複製非隱藏文件和目錄。
cp -rf .* b
因爲.*包含了.和..,這樣子複製會出問題,當前目錄的上一層目錄都可能被複制過去。
這裏可以藉助ls -A命令,來過濾.和..目錄並且包含其他隱藏文件和目錄,命令如下:
cp -rf `ls -A1 --color=never` b
-1選項,讓ls一行只顯示一個文件或目錄名,僅是爲看着舒服,這裏加不加都不影響。
如果已經將非隱藏的文件或目錄複製過去了,僅想複製隱藏的文件和目錄,有兩種方式:
- 一般可以給cp加上-u參數,這個參數只會複製目標目錄下不存在的文件,
或者目標目錄下存在,但當前目錄下更新的文件。
即:
cp -urf `ls -A1 --color=never` b
- 可以用`ls -d .[^.]* --color=never`來得到當前目錄下隱藏文件和目錄,-d不展開目錄顯示,.[^.]*匹配當前目錄下以.開頭的文件和目錄。
即:
cp -rf `ls -d .[^.]* --color=never` b