touch和mkdir建的文檔文件,用find后用絕對路徑root刪除不掉mkdir建立的文件,但是touch可以刪除掉,但是用(.)可以刪除掉,為什么呢
[root@localhost ~]# touch qz
[root@localhost ~]# mkdir qa
[root@localhost ~]# ls
? qa ?qz install.org
[root@localhost ~]# find /root -name qz -exec rm -rf {} \;
[root@localhost ~]# ls
? qa install.org
[root@localhost ~]# find /root -name qa -exec rm -rf {} \;
find: “/root/qa”: 沒有那個文件或目錄
[root@localhost ~]# find . -name qa -exec rm -rf {} \;
[root@localhost ~]# ls
? install.org
2017-08-16
?已經解決了:看下面大佬的回答
其實?這還.?還是絕對路徑沒關系??在你所謂報錯的那一次?其實已經刪除了qa
【樹干】xx(xxxxxxxxx)??21:36:09
只所以會出這個錯誤?你得注意?這個錯誤?不是rm?命令生成的?是find命令產生的??這就涉及到find的工作機制?
find?/root?-name?qa?-exec?rm?-rf?{}?\;
首先找到了一個文件(一切皆文件,包括目錄)?qa??所以/root/qa作為參數傳遞給了?rm?-rf?然后qa目錄就被刪除了?但是?注意?find查找文件是遞歸的?它會繼續在qa這個目錄下?去查找qa?
【樹干】xx(xxxxxxxx)??21:37:44
然而?qa這個目錄?卻在上一步被刪除了?所以find?懵逼了?說沒有/root/qa這個目錄??你讓我去哪查??這個錯誤?其實和你手動刪除qa目錄后?find?/root/qa?-name?*?是一樣的 ?
2017-08-16
贊一個,我也很想知道答案。