Как удалить каталог со “Слишком многими уровнями символьных ссылок”

utime/utimes syscall позволяет Вам установить время доступа и время изменения произвольно. Таким образом, Вы можете stat файл, затем используйте utime изменить только одного из них. Из страницы справочника:

Имя:

utime, utimes - файл изменения длится доступ и время изменения

РЕЗЮМЕ

   #include 
   #include 

   int utime(const char *filename, const struct utimbuf *times);

   #include 

   int utimes(const char *filename, const struct timeval times[2]);

ОПИСАНИЕ

utime () системный вызов изменяет времена доступа и время изменения inode, указанного именем файла к actime и modtime полям времен соответственно.

Если времена являются ПУСТЫМИ, то времена доступа и время изменения файла установлены на текущее время.

Изменение меток времени разрешено когда: или процесс имеет appropri ‐, съел полномочия, или эффективный идентификатор пользователя равняется идентификатору пользователя файла, или времена являются ПУСТЫМИ, и процесс имеет разрешение записи для файла.

[ … ]

7
05.02.2014, 16:04
4 ответа

Попробуйте находят.

find -L /gluster_broken -mindepth 10

найти циклы ссылки

затем не рекурсивный rm на ошибочном файле (файлах)

находка перейдет по ссылкам и найдет те же "слишком много уровней" ошибкой. Я использую-mindepth для отфильтровывания чего-либо меньше чем 10 глубоко для предотвращения хорошо файлы/каталоги. Да, это предполагает, что Вы не имеете больше что 10 глубоко в Вашем нормальном дереве. Вся эта команда пытается сделать, находка файл по ошибке.

- редактирование

Я думаю после команды, лучше,

find -L /gluster_broken >/dev/null

Вот мой тест

$ find .
.
./dira
./dira/a
./dira/dirb
./dira/dirb/dirc
./dira/error
./dira/b
./dira/test
./dira/test/ab&<cd.file
./dira/test/magic?newlines
./dira/test/cleanup
$ find -L . >/dev/null
find: ‘./dira/a’: Too many levels of symbolic links
find: ‘./dira/error’: Too many levels of symbolic links
find: ‘./dira/b’: Too many levels of symbolic links
$ 

---редактирование 2

Я думаю, что мое предложение (комментарий) проверяет, что файловая система могла бы быть лучшей, я только что видел этот ответ и задаюсь вопросом, есть ли у Вас подобная проблема.

4
27.01.2020, 20:17
  • 1
    Почему это работает? –  Anko 04.02.2014, 18:59
  • 2
    Ой существует опечатка -maxdepth 10 не должен ли быть. Я отредактирую. –  X Tian 04.02.2014, 20:05
  • 3
    Моя проблема состоит в том, что о чем-либо, что так или иначе пытается сделать что-то с/gluster_broken/home, бросает это "во многие уровни символьных ссылок" ошибка. Команда "находки", предложенная выше, действительно бросает эту ошибку также, таким образом, я не вытаскиваю полезной информации из нее. –  Krist van Besien 05.02.2014, 16:02
  • 4
    , я думаю, что/gluster_broken/home является цикличным выполнением на себе. Я хотел бы знать однако, как это произошло, и что я могу сделать для фиксации его. –  Krist van Besien 05.02.2014, 16:07
  • 5
    Было бы так интересно видеть вывод ls -l /gluster_broken . –  X Tian 05.02.2014, 17:14

Я недавно столкнулся с этой же проблемой при создании SymLink, не давая ему абсолютный каталог.

Это дало ту же ошибку при попытке прочитать файл («Слишком много уровней симликовых»):

ln -s ./config ~/.config/terminator

, казалось бы, потому что симличинка пытается вернуться на себя:

ls -l ~/.config/terminator
lrwxrwxrwx 1 zane zane 8 Dec 22 16:14 config -> ./config

, но это сработало:

ln -s /home/zane/config ~/.config/terminator/config

, надеюсь, Это поможет кому-то в той же ситуации.

1
27.01.2020, 20:17

Возможно Я ошибаюсь, но, похоже, на вопрос больше никто не ответил.

Проблема в том, что у вас есть / в конце вашей команды.

Вместо

rm gluster/

просто запустите

rm gluster

. Помещая / в конец, вы пытаетесь перейти в каталог, который является циклической ссылкой, поэтому она никогда не находит дно. Без / вы просто удаляете символическую ссылку.

4
27.01.2020, 20:17

Вы не можете удалить /gluster _сломанный/домой, потому что /gluster _сломанный является неработающей ссылкой.

ls -l  /gluster_broken

вы увидите, что это ссылка.Так что удали:

rm /gluster_broken
0
27.01.2020, 20:17

Теги

Похожие вопросы