博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在两个目录中删除其中一个目录中同名文件
阅读量:5991 次
发布时间:2019-06-20

本文共 1431 字,大约阅读时间需要 4 分钟。

hot3.png

假设现在有一个目录/mnt/data,还有另外一个目录/opt/data,需要删除/opt/data目录中和/mnt/data目录中的同名文件。

巧妙做法:利用xargs

实例如下:

[root@6-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 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/anhuirm -f /opt/data/boborm -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

本文原创地址:

转载于:https://my.oschina.net/u/3585265/blog/2231027

你可能感兴趣的文章
Mina 组件介绍之 IoAcceptor 与 IoConnector
查看>>
【Android】Android中AsyncTask的定义和使用方法
查看>>
解决 Eclipse项目红感叹号
查看>>
关于react16.4——错误边界
查看>>
POJ 3181完全背包(+高精)
查看>>
再论 Ntxx() vs Zwxx()
查看>>
ReactOS 0.0.29启动分析
查看>>
信号量、Windows事件实现线程同步
查看>>
博客园配置MarsEdit客户端
查看>>
关于面向对象
查看>>
为什么很多人用keepalived来实现redis故障转移
查看>>
卷积神经网络
查看>>
MackDown学习笔记
查看>>
tmpfs:一种基于内存的文件系统
查看>>
【笔记】使用腾讯地图坐标转换
查看>>
微信小程序 Array对象操作
查看>>
C++:关于友元函数的一些问题
查看>>
如何使用 CODING 实践 DevOps 全流程
查看>>
解决IE不支持 background-size:cover;
查看>>
SSM001/构建maven多模块项目
查看>>