Что точно делает каталог `//` в команде оболочки `rm -rf //`? - PullRequest
0 голосов
/ 20 ноября 2018

Я случайно выполнил эту команду, пытаясь удалить ошибочный каталог с именем \\ из моего каталога проекта.Совершенно ошибка, я знаю.Он довольно быстро начал бить разрешенные файлы, и в этот момент я осознал свою ошибку, поэтому я ctrl-c 'ушел оттуда.У меня есть резервные копии всех важных проектов, но команда убила мою среду разработки.Открытие vim в любом месте приводит к сбою и выбрасыванию segfault следующим образом:

Vim: Caught deadly signal SEGV

Error detected while processing function <SNR>130_PollServerReady[7]..<SNR>130_Pyeval:Vim: Finished.

line    4:
Exception MemoryError: MemoryError() in <module 'threading' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.pyc'> ignored
[1]    6921 segmentation fault  vim ~/dotfiles/.vimrc

Мой основной вопрос для меня и для всех, кто совершает подобное gaff:

Что именно делает двойной обратный слеш // указать на?Что будет удалено первым?Есть ли логичное первое место, чтобы начать заменять util, config, $ PATH и т. Д.?

Надеюсь, это понятно и достаточно конкретно для SO.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

В Linux, и я полагаю, что другие * nix-варианты, лишняя косая черта в пути просто игнорируется.Таким образом, a//b - это то же самое, что и a/b, а // - это то же самое, что и /.Я надеюсь, что вы не управляете этим как суперпользователь ...

0 голосов
/ 20 ноября 2018

cd // приведет вас к корневому каталогу /.

rm выполняет поиск в глубину , просматривая результаты вызова xfts_open.find также обходит файловые системы таким образом.

find / перечисляет существующие файлы.Затем вы можете использовать свои знания об ожидаемой структуре, чтобы изменить список, который отсутствует.

В качестве альтернативы, вы можете использовать debugfs, чтобы помочь вам получить файлы.

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

...