2015-08-28 74 views
0

我想刪除圓形符號鏈接。 這裏的問題是我如何正確解析出find -follow命令生成的循環鏈接?刪除圓形符號鏈接

 
find /home/ -follow -printf "" 
find: File system loop detected; `/home/domain_names_new/biz/2015-04-09_03_44_31/2015-04-09_03_44_31' is part of the same file system loop as `/home/domain_names_new/biz/2015-04-09_03_44_31'. 
find: File system loop detected; `/home/domain_names_new/biz/2015-04-09_03_44_31/2015-04-13_03_44_03/2015-04-09_03_44_31' is part of the same file system loop as `/home/domain_names_new/biz/2015-04-09_03_44_31'. 
find: File system loop detected; `/home/domain_names_new/biz/2015-04-09_03_44_31/2015-04-13_03_44_03/2015-04-13_03_44_03' is part of the same file system loop as `/home/domain_names_new/biz/2015-04-09_03_44_31/2015-04-13_03_44_03'. 

+0

看看每個文件指向的位置:使用'ls -l' –

回答

0

好像/家庭/ domain_names_new /商業/ 2015-04-09_03_44_31/2015-04-09_03_44_31指向它的父文件夾的/ home/domain_names_new /商業/ 2015-04-09_03_44_31。你可以使用這個檢查

ls -l /home/domain_names_new/biz/2015-04-09_03_44_31/2015-04-09_03_44_31 

注意:另外兩個錯誤有類似的問題;每次都有一個指向其父文件夾的鏈接。

因此您需要移除該鏈接或更正此鏈接。沒有「魔術」解決方案;只有你知道鏈接應該指向哪裏,系統無法知道這一點。

+0

@ user121196:如果我的答案對您有幫助,請考慮接受它。 –

1

這是我會用刪除鏈接兒童使用find後續的輸出:

find /home/ -type l -follow -printf "" 2>&1 | sed -e "s/.*detected; \`\(.*\)' is part.*/\1/" | xargs rm 

第一個重定向錯誤流到stdout:

2>&1 

提取之間的「文件名檢測到;「和」是部分「

sed -e "s/.*detected; \`\(.*\)' is part.*/\1/" : 

刪除相應文件

xargs rm