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