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

У меня есть такая структура

  • file_1
  • файл_2...
  • file_n
  • folder1 /
    • sub_file_1
    • sub_file_2

Я хочу удалить только file_1, file_2 и file_n, но сохранить в них все папки и файлы.

2 ответа

Решение

Просто беги:

rm *

Это так просто. Он не коснется каталогов, если вы не добавите флаг -R или -r:

rm -r *

Если вы также хотите удалить пустые каталоги, добавьте флаг --dir:

rm --dir *

rm без -r, отключение рекурсивного флага удаления каталога и подстановки оболочки:

rm /path/to/dir/*

Добавить -f если вы не хотите, чтобы вас попросили.

Вы также можете использовать find:

find /path/to/dir -maxdepth 1 -type f -exec rm -rf '{}' \;

который работает из-за maxdepth из 1, таким образом выбирая только файлы верхнего уровня.

Другие вопросы по тегам