Что происходит шаг за шагом при использовании «rm -rf directory»?

Предположим, что у меня 150 ГБ данных в каталоге, и я случайно запустил эту команду для каталога.

Внезапно я понял, что я не должен ставить «/» в начале каталога, и через несколько секунд я отменил команду с помощью Ctrl + C.

Каталог все еще существует, и в настоящее время есть папки от a до z, но если бы это были окна, я бы знал, что ушло, а что нет. Я попытался проверить эту команду на тестовом сервере, и я предположил, что команда удалит папки, начиная с 0-9, а затем до az. В моих тестах я не мог проверить эту теорию, потому что либо все прошло, либо ничего не было удалено.

Тем не менее все еще любопытно. Это так? Как эта команда работает поэтапно? Я потерял некоторые данные?

One Solution collect form web for “Что происходит шаг за шагом при использовании «rm -rf directory»?”

Как эта команда работает поэтапно?

Рекурсивный. rm не удалит каталог, если он не пуст. По этой причине он сначала перезапишет его и удалит его содержимое («обычные» файлы). Это означает, что процесс разблокировки начинается на самом глубоком уровне иерархии каталогов и идет вверх по удалению каталогов после их опорожнения. Я думаю, вы могли бы это сделать (хотя могут быть небольшие вариации):

 / ---- somedir <-- (5) -------- a <-- (4) ------------ a <-- (3) ---------------- a <-- (2) -------------------- somefile1.txt <-- (1) -------------------- somefile2.txt <-- (1) -------------------- somefile3.txt <-- (1) -------------------- [...] ---------------- b <-- (2) ---------------- [...] <-- (2) ------------ b <-- (3) ------------ [...] <-- (3) -------- b <-- (4) -------- [...] <-- (4) ^ ^ ^ ^ ^ (5) (4) (3) (2) (1) 

Кстати, у rm есть опция -v которая поможет вам понять, что происходит по мере ее запуска.

 -v, --verbose explain what is being done 

Я потерял некоторые данные?

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

Пойдите так далеко, как вы можете в своем каталоге: файлы, такие как /dir/a/e/g/r/c/somefile (при условии, что алфавитная сортировка идет так далеко), скорее всего, исчезнут … Конечно, объем данных вы потеряли, зависит от того, как быстро вы нажмете Ctrl + C.

  • Chromakey - видеоредактирование в Unix?
  • Крайне долгое время для ext4 fsck
  • Aptitude удалила нагрузку модулей, когда я пытался установить Imagemagick, как мне отменить это?
  • Какая команда или горячая клавиша для остановки запущенной программы в DrJava?
  • Почему «Linux Generic» использует расширение RPM на странице загрузки MySQL?
  • Как подключить wi-fi сеть без использования GUI?
  • Ошибка MDADM RAID 0
  • yum - скачать для CentOS с помощью ubuntu?
  • Команда «Я» на linux ubuntu
  • как подключить вывод cut к команде foreach?
  • mount: неправильный тип fs, плохая опция, плохой суперблок
  • Linux и Unix - лучшая ОС в мире.