Удаление файлов всегда должно производиться безопасно.
Предполагаю, что у вас есть дерево каталогов со скрытыми файлами и список подкатегорий этих скрытых файлов, который вы хотите сохранить. Вы хотите удалить все другие скрытые файлы.
Позволяет начать со списка скрытых файлов.
find `pwd` -iname ".*" -type f > all-hidden-files.txt
Теперь предположим, что у вас есть какой-то фильтр, который позволит сократить список всех файлов, которые вы хотите сохранить (создавая свои list_files). Здесь SomeFilter может быть вы вручную редактируете список файлов, чтобы сохранить те, которые вы не хотите удалять.
SomeFilter all-hidden-files.txt > list_files
Следующая команда определит линию во всех-скрытых files.txt, которые отсутствуют в list_files, который дает вам файлы, которые могут быть удалены.
comm -3 all-hidden-files.txt list_files > removable-files.txt
Редактировать: Просто понял, что входные файлы в comm должны быть отсортированы. Так что используйте это как,
comm -3 <(sort all-hidden-files.txt | uniq) <(sort list_files | uniq) \
> removable-files.txt
Вы можете подтвердить это хорошо работает для вас, а затем удалить список файлов, созданных с чем-то вроде,
for i in $(<removable-files.txt); do rm $i; done;