zoukankan      html  css  js  c++  java
  • 两个目录中,删除其中一个目录中同名文件的做法

    假设现在有一个目录/mnt/data,还有另外一个目录/opt/data,需要删除/opt/data目录中和/mnt/data目录中的同名文件。
    巧妙做法:利用xargs

    实例如下:
    [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
  • 相关阅读:
    【RabbitMQ】3、win7下安装RabbitMQ
    【协议】4、http状态码
    【协议】3、HTTP 协议入门
    【协议】2、TCP/IP协议三次握手与四次握手流程解析
    【Dubbo&&Zookeeper】5、dubbo总结和学习资料汇总
    【Dubbo&&Zookeeper】6、 给dubbo接口添加白名单——dubbo Filter的使用
    【Spring】27、JPA 实现乐观锁@Version注解的使用
    HBase 常用Shell命令
    Java操作XML的JAXB工具
    JAXB--@XmlType注解标注xml生成顺序
  • 原文地址:https://www.cnblogs.com/kevingrace/p/8268690.html
Copyright © 2011-2022 走看看