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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章