前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用xargs命令批量移动文件

使用xargs命令批量移动文件

作者头像
吴易娃
发布2024-01-12 18:02:52
1770
发布2024-01-12 18:02:52
举报
文章被收录于专栏:易娃的杂货铺易娃的杂货铺

当遇到这样一个场景,需要批量把查找出来的多个文件或者目录移动到一个统一的目录下面,这时可以使用xargs命令与查询命令(例如find)结合使用再批量操作mv命令的方式来实现。

这里结合自己遇到的一个实际场景来说明,具体操作方式如下:

我这里因为是直接查找当前目录下的部分文件,所以就直接使用了ls命令,如果是查找分散在多个路径下的文件建议使用find命令,但是具体实现原理是一致的

  1. 首先过滤出需要移动的文件&目录
代码语言:text
复制
ls -1 | awk '/(-{1,})/{print$0}'

https://cdn.jsdelivr.net/gh/alexwuyh/pic-host@master/photo/202209281721468.png
https://cdn.jsdelivr.net/gh/alexwuyh/pic-host@master/photo/202209281721468.png
  • ls -1 查找当前目录下的所有文件&目录,且只列出名称
  • awk '/(-{1,})/{print$0}' 过滤出名称中包含多个-符号的文件&目录
  1. 再加上xargs命令批量移动文件
代码语言:text
复制
ls -1 | awk '/(-{1,})/{print$0}' | xargs -I {} mv {} ~/tmp220928-02/

https://cdn.jsdelivr.net/gh/alexwuyh/pic-host@master/photo/202209281726054.png
https://cdn.jsdelivr.net/gh/alexwuyh/pic-host@master/photo/202209281726054.png

执行完命令后查看,可以发现所有过滤出来的文件已经移动到了tmp220928-02目录下去

  • xargs 参数过滤器
  • -I 将xargs的每项名称,一行一行的赋值给 {},可以用 {} 代替
    • 大写的i
    • {} 过滤数据存放
  • mv 移动文件&目录的命令
  • ~/tmp220928-02/ 目标目录,会把所有文件移动该目录下
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档