两个目录中,删除其中一个目录中同名文件的做法
假设现在有一个目录/mnt/data,还有另外一个目录/opt/data,需要删除/opt/data目录中和/mnt/data目录中的同名文件。
巧妙做法:利用xargs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 实例如下: [root@centos6-vm01 ~] # ll /mnt/data/ total 0 -rw-r--r--. 1 root root 0 Jan 10 23:24 anhui -rw-r--r--. 1 root root 0 Jan 10 23:24 bobo -rw-r--r--. 1 root root 0 Jan 10 23:17 huihui [root@centos6-vm01 ~] # ll /opt/data/ total 0 -rw-r--r--. 1 root root 0 Jan 10 23:25 anhui -rw-r--r--. 1 root root 0 Jan 10 23:25 beijing -rw-r--r--. 1 root root 0 Jan 10 23:25 bobo -rw-r--r--. 1 root root 0 Jan 10 23:25 huihui -rw-r--r--. 1 root root 0 Jan 10 23:25 shanghai 正确做法: 注意,下面命令中的 /mnt/data 后面不能加/,而 /opt/data/ 后面需要加/ [root@centos6-vm01 ~] # cd /mnt/data && ls -p | grep -v /$ | xargs -I{} rm -f /opt/data/{} [root@centos6-vm01 data] # 或者: [root@centos6-vm01 ~] # cd /mnt/data && ls -p | grep -v /$ | xargs -t -I{} rm -f /opt/data/{} rm -f /opt/data/anhui rm -f /opt/data/bobo rm -f /opt/data/huihui [root@centos6-vm01 data] # 解释: ls -p 参数将给列出的目录名最后加上/ grep - v 参数指定反选择, /$指定以/结尾的搜索模式,因此该命令将输出不带/结尾的项,也就是只输出 /opt/test_a 目录中的文件名,不包含子目录。 xargs 命令的-I{} 指定用管道传递过来的输入替换后面命令中的{}字符串,重复多次,直至管道没有输入 注: xargs 加上 -t 参数,可以看到替换的效果 检查一下,发现上面命令执行后, /opt/data 目录下的同名文件已经删除了 [root@centos6-vm01 data] # ll /mnt/data/ total 0 -rw-r--r--. 1 root root 0 Jan 10 23:24 anhui -rw-r--r--. 1 root root 0 Jan 10 23:24 bobo -rw-r--r--. 1 root root 0 Jan 10 23:17 huihui [root@centos6-vm01 data] # ll /opt/data/ total 0 -rw-r--r--. 1 root root 0 Jan 10 23:25 beijing -rw-r--r--. 1 root root 0 Jan 10 23:25 shanghai |
*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
2017-01-11 MySQL 操作命令梳理(5)-执行sql语句查询即mysql状态说明
2017-01-11 MySQL 主从同步(5)-同步延迟状态考量(seconds_behind_master和pt-heartbea)
2017-01-11 MySQL 操作命令梳理(4)-中文乱码问题