Как делает комнату-r, идут о рекурсивном удалении? В какой порядок?

Вы обновляли на своем HDD на 2 ТБ/etc/fstab для указания на корректный UUID зашифровать объема?

В случае, если Вы не знаете то, что является UUID зашифровать объема, можно проверить издание cmd:

cryptsetup-v состояние,/dev/

После того, как необходимо обновить/etc/fstab и конфигурацию личинки для указания на корректный UUID.

Это должно решить Ваш вопрос, предполагающий, что это - вопрос наличия личинки и fstab, указывающего на корректный диск.

30
13.10.2014, 04:45
2 ответа

Как говорит Жиль, вы не можете предсказать порядок удаления в каталоге, только то, что каталоги верхнего уровня будут обработаны в порядке командной строки.

Однако вы также гарантируете, что он удалит иерархии каталогов снизу вверх, потому что UNIX позволяет удалить только каталоги, если они пусты. Таким образом, чтобы удалить каталог, сначала нужно все удалить в нем. Если он содержит подкаталоги, он должен сначала удалить их содержимое и так далее.

5
27.01.2020, 19:38

rm -r поочередно работает над каждым из своих аргументов. Если аргументом является каталог, то он перечисляет каталог (с функциями opendir и readdir или каким-либо эквивалентным методом), и работает над каждым элементом по очереди. Если записью является справочник, он исследует эту запись рекурсивно.

Это точно такой же метод, который используют другие приложения для рекурсивного обхода каталогов - find, ls -Rf, и т.д.

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

Обратите внимание, что ls или echo * делают сортировку файлов в лексикографическом порядке их имен. находят и ls -f не сортируют.

Единственное, на что можно положиться, это на то, что аргументы обрабатываются в порядке. Таким образом, если бы C/ все еще был частично там, это означало бы, что Dest/ был бы нетронут. Если C/ отсутствует, вы можете получить представление о том, где файлы были удалены в Dest/, проверив время модификации каталога и сравнив его со временем C/, когда C/ был удален или когда копия закончилась. Первым удаляемым файлом может быть файл непосредственно в Dest/ или где-то глубоко в иерархии в зависимости от того, была ли первая запись в Dest/, которую rm случайно попала в каталог, каталогом или нет.

Скорость rm в основном зависит от того, сколько файлов нужно удалить. Требуется очень большой файл, чтобы заметно повлиять на время удаления. Большая часть работы заключается в поочередном удалении каждой записи каталога. Данные файла не стираются, удаление содержимого файла требует только пометки блоков, которые он использовал как свободные, что относительно быстро.

34
27.01.2020, 19:38

Теги

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