Как удалить файлы в каталоге и подкаталогах, но не в папках?
Я должен быть в состоянии сделать это в командной строке Linux.
С rm?
Как удалить файлы в каталоге и подкаталогах, но не в папках?
Я должен быть в состоянии сделать это в командной строке Linux.
С rm?
findИспользуйте find . Он найдет все файлы (т.е. не каталоги) в текущей папке. Если вы хотите убедиться, что не удалили неправильные данные, сначала позвоните.
find . -type f
Затем вы можете использовать опцию exec чтобы что-то сделать с этими файлами - в этом случае их rm .
find . -type f -exec rm {} \;
find трубку в xargsВы также можете использовать вывод find для подачи в xargs , который будет принимать пути к файлам в качестве аргументов для команды rm .
find . -type f -print0 | xargs -0 rm
Опция -print0 необходима, чтобы не разбивать вещи именами файлов, содержащими пробелы. Как правило, не используйте такую вещь без этой опции, это крайне небезопасно.
findВ GNU find также есть опция delete . Это намного эффективнее, чем способ exec так как не нужно создавать новый процесс с помощью rm . Это также более безопасно при рассмотрении путей к файлам.
find . -type f -delete
В руководстве по поиску GNU есть очень обширный раздел по удалению файлов.