Как удалить все файлы в текущем каталоге, но сохранить файлы в подпапках
У меня есть такая структура
- 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, таким образом выбирая только файлы верхнего уровня.