Intereting Posts
Резервное копирование определенного пакета и его зависимостей Bash: вычислить время, прошедшее между двумя временными метками Что я тут делаю не так (проблема с петлями) iostat – Что означает поле «воровать»? Может ли btrfs обрабатывать разные уровни RAID для разных подвыборов? Скрыть символы смены Vim / readonly при загрузке, но не понимаю, почему. как исследовать и исправлять? Как я могу проверить, являются ли файлы конфигурации nginx действительными в скрипте Bash? буфер grep для вывода ранее выполненной команды Как заменить устройство в файловой системе BTRFS RAID-1? скажите Firefox использовать другое устройство ALSA Кронтаб с Гитубом предлагать пользователям приглашение для входа? / bin / войти в систему ? Гетти? Как я могу заменить многострочную строку с помощью sed? Как получить PID подпроцесса через родительский процесс в сценарии оболочки bash?

Безопасное удаление каталога

Я alias rm to rm -i так что когда я ошибаюсь в file* как file * я получаю запрос перед случайным удалением файлов, которые я не собирался удалять. Существует ли эквивалентная идиома для каталогов?

В частности, для удаления каталога и его содержимого вам необходимо rm -r . Использование rm -ri будет запрашивать для вас все файлы, а не только каталог верхнего уровня. Для каталогов с большим количеством файлов это не удобно. Чтобы этого избежать, я часто использую rm -rf , но это меня пугает. Я всего лишь опечатка, чтобы сдуть много важных вещей (например, rm -rf ~ /foo вместо rm -rf ~/foo -ouch!).

Можно было бы написать мягко раздражающий скрипт для замены, например rmdir, с чем-то, что запрашивает только что перечисленные в командной строке, но похоже, что это та проблема, решение которой уже должно существовать.

rm -i будет чрезвычайно раздражать, особенно при удалении рекурсивно.

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

Это намного менее навязчиво, но при этом защищает от большинства ошибок.

Лучшая форма защиты – двойная / тройная проверка при удалении рекурсивно или еще лучше, все, что вы удаляете.

Вы можете cd в каталог верхнего уровня, который хотите удалить рекурсивно, затем перейдите на уровень и rm в этот каталог. Таким образом, вам не нужно использовать ведущие косые черты и т. Д.

 cd /home/user/junk ls -1 folders to delete rm -ri . ###Or "rm -rf ." cd .. rm -rf junk 

Еще один способ проверить правильность ваших путей для любой команды – просто использовать вкладку.

Один из вариантов заключается в том, чтобы использовать мусор, например, здесь .
Есть много примеров, кроме этого – это был только первый в моих результатах поиска. В принципе, все операции rm становятся командами mv. Если вы ошиблись в файлах, они все еще находятся на машине и легко восстанавливаются. И связанный выше подход создает псевдоним для базовой команды rm, поэтому вы все равно можете использовать ее, когда захотите.