Как исключить папки для удаления при использовании ( rm -rf *) в родительском каталоге
Я запускаю следующую командную строку, чтобы удалить все файлы / каталоги в каталоге:
cd /home/abdennour/android/
rm -rf *
Архитектура этого каталога выглядит следующим образом:
/home/abdennour/android/
/home/abdennour/android/documents/
/home/abdennour/android/documents/medialib/
/home/abdennour/android/documents/preview/
/home/abdennour/android/fixtures/
/home/abdennour/android/images/
/home/abdennour/android/images/hard/
/home/abdennour/android/images/mlibrary/
/home/abdennour/android/images/mlibrary/thumbs/
/home/abdennour/android/js/
.....
Я хочу удалить все, кроме следующих каталогов:
/home/abdennour/android/documents/
/home/abdennour/android/images/mlibrary/
2 ответа
Решение
Ты можешь использовать GLOBIGNORE переменная окружения. Предположим, что вы хотите удалить все, кроме /home/abdennour/android/documents/ а также /home/abdennour/android/images/mlibrary/тогда вы можете сделать следующее:
cd /home/abdennour/android/
export GLOBIGNORE="documents:images"
rm -rf *
cd images
export GLOBIGNORE="mlibrary"
rm -rf *
export GLOBIGNORE=""
Поскольку список этих папок, которые вы не хотите удалять, довольно короткий, и, похоже, он не соответствует какой-либо очевидной схеме, я думаю, вам просто нужно переместить эти директории куда-нибудь, прежде чем удалять остальные.