如何在两个目录中删除其中一个目录中同名文件
生活随笔
收集整理的這篇文章主要介紹了
如何在两个目录中删除其中一个目录中同名文件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
假設(shè)現(xiàn)在有一個(gè)目錄/mnt/data,還有另外一個(gè)目錄/opt/data,需要?jiǎng)h除/opt/data目錄中和/mnt/data目錄中的同名文件。
巧妙做法:利用xargs
實(shí)例如下:
[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 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 參數(shù)將給列出的目錄名最后加上/ grep -v 參數(shù)指定反選擇, /$指定以/結(jié)尾的搜索模式,因此該命令將輸出不帶/結(jié)尾的項(xiàng),也就是只輸出/opt/test_a目錄中的文件名,不包含子目錄。 xargs命令的-I{} 指定用管道傳遞過來的輸入替換后面命令中的{}字符串,重復(fù)多次,直至管道沒有輸入 注:xargs加上 -t 參數(shù),可以看到替換的效果檢查一下,發(fā)現(xiàn)上面命令執(zhí)行后,/opt/data目錄下的同名文件已經(jīng)刪除了
[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本文原創(chuàng)地址:https://www.linuxprobe.com/background-linux.html
轉(zhuǎn)載于:https://my.oschina.net/u/3585265/blog/2231027
總結(jié)
以上是生活随笔為你收集整理的如何在两个目录中删除其中一个目录中同名文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDUT-2449_数据结构实验之栈与队
- 下一篇: Jboss7或者wildfly部署war