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