当遇到这样一个场景,需要批量把查找出来的多个文件或者目录移动到一个统一的目录下面,这时可以使用xargs
命令与查询命令(例如find
)结合使用再批量操作mv
命令的方式来实现。
这里结合自己遇到的一个实际场景来说明,具体操作方式如下:
我这里因为是直接查找当前目录下的部分文件,所以就直接使用了
ls
命令,如果是查找分散在多个路径下的文件建议使用find
命令,但是具体实现原理是一致的
ls -1 | awk '/(-{1,})/{print$0}'
ls -1
查找当前目录下的所有文件&目录,且只列出名称awk '/(-{1,})/{print$0}'
过滤出名称中包含多个-
符号的文件&目录ls -1 | awk '/(-{1,})/{print$0}' | xargs -I {} mv {} ~/tmp220928-02/
执行完命令后查看,可以发现所有过滤出来的文件已经移动到了tmp220928-02
目录下去
xargs
参数过滤器-I
将xargs的每项名称,一行一行的赋值给 {},可以用 {} 代替 {}
过滤数据存放mv
移动文件&目录的命令~/tmp220928-02/
目标目录,会把所有文件移动该目录下扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有