2015-08-28 6 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 указывает на его родительскую папку/главная/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 /home/ -type l -follow -printf "" 2>&1 | sed -e "s/.*detected; \`\(.*\)' is part.*/\1/" | xargs rm 

первый поток ошибок переадресацией на стандартный вывод:

2>&1 

извлечь имя файла между " обнаружен ", и«»является частью»

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

удалить соответствующий файл

xargs rm 
Смежные вопросы