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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值