Мне нужно удалить все содержимое папки в CentOS, но не саму папку.
Например: у меня есть папка с именем «MYFOLDER», которая содержит вложенные папки FOLD_1, FOLD_2, FOLD_3, FOLD_4 ... и т. Д. И некоторые файлы. Мне нужно удалить все эти папки и файлы, но не папку контейнера MYFOLDER. Мне нужен этот каталог, чтобы направлять результаты предыдущего процесса.
Я пробовал с rm -rf
, но при этом удаляется и папка контейнера.
Вместо этого удалите содержимое папки.
rm -r MYFOLDER/*
Ты можешь использовать:
rm -r MYFOLDER/{.[^.],.??*}
При этом удаляются также скрытые файлы и папки. Если у вас слишком много файлов в каталоге MYFOLDER, вам следует вместо этого запустить:
ls MYFOLDER/{.[^.],.??*}|xargs rm -r
На мой взгляд, самый простой способ - удалить весь каталог, включая его самого, а затем заново создать папку. Бывают ситуации, когда это не очень хорошее решение (например, автоматические скрипты или более сложные конвейеры), но вы не указали, почему не хотите удалять папку.
rm -rf foldername
mkdir foldername
Ой. Вы указали (я перечитал ваш пост). Ну, тем не менее, удаление и воссоздание могут работать. Особенно, если вы объединяете команды вместе, например
rm -rf foldername && mkdir foldername
Или
rm -rf foldername; mkdir foldername
Как насчет
cd MYFOLDER
find . | rm -rf
Это также удаляет скрытые файлы (те, которые начинаются с точки).
Пытаться rm -r -f filename
его работа с CentOS 6.x
Я настоятельно рекомендую эту альтернативу (она также удаляет файлы с пробелами в именах):
find MYFOLDER/ -type f -print0 | xargs -0 rm -f