Как исключить папки для удаления при использовании ( 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=""
Поскольку список этих папок, которые вы не хотите удалять, довольно короткий, и, похоже, он не соответствует какой-либо очевидной схеме, я думаю, вам просто нужно переместить эти директории куда-нибудь, прежде чем удалять остальные.