5

Я вовсе не собираюсь форматировать флешку, а перебираю файлы, удаляя их все (хотя после ввода 'iterate through' я чувствую, как работает скрипт Python.

До сих пор я делал rm filename1 rm filename2 rm filename3 т.д., Есть ли способ просто 'rm -all', когда он находится в корневом каталоге USB-накопителя?

1 ответ1

17

Да:

rm -rf *

Будьте осторожны, где вы находитесь, когда вы запустите это, он удалит все из текущего каталога и всех подкаталогов.

Если вы хотите удалить только файлы и не использовать каталоги:

rm *

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

rm -rf * .*

Это даст ошибку о невозможности удаления . и .. (текущий и родительский каталоги соответственно). Вы можете спокойно игнорировать это, rm никогда не удалит их, поскольку они защищены стандартом POSIX (см. Здесь и здесь). Если вы не хотите видеть сообщение об ошибке, вы можете указать, что вы хотите удалить только те точечные файлы и папки, чьи . сопровождается не . персонаж:

rm -rf * .[^.]*

Наконец, если вы хотите удалить все файлы в текущем каталоге и всех подкаталогах, но сохранить каталоги, сделайте следующее:

find . -type f -delete

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .