я получил /tmp/test
каталог. В нем у меня есть смесь файлов и каталогов. Один из этих каталогов /tmp/test/to_be_kept
. Теперь я хотел бы знать, как мне удалить все файлы и каталоги, кроме /tmp/test/to_be_kept
и все, что в нем? Спасибо
shopt -s extglob
rm -r /tmp/test/!(to_be_kept)
Это приведет к появлению некоторых сообщений об ошибках, которые вы можете игнорировать, когда он пытается повторно получить доступ к каталогам, которые уже были удалены:
find /tmp/test -mindepth 1 -type d -name to_be_kept -prune -o -exec rm -rf {} \;
Вот простой способ:
ls /tmp/test | grep -v to_be_kept | xargs rm -r
Если вы хотите удалить также скрытые:
ls -a /tmp/test | grep -v to_be_kept | xargs rm -r
Всегда сначала проверяйте вывод!
Попробуйте сначала без | xargs rm -r
часть! Если вы получите список файлов и каталогов, которые хотите удалить, вы также можете подать заявку ...