Ответ 1
find
может это сделать. Просто добавьте -delete
:
find . -name ".DS_Store" -delete
Я понимаю, что могу использовать find . -name ".DS_STORE"
, чтобы найти все файлы .DS_STORE в текущей папке и во всех подпапках. Но как я могу удалить их из командной строки одновременно? Мне было очень неприятно переключаться между всеми папками и удалять их одну за другой.
find
может это сделать. Просто добавьте -delete
:
find . -name ".DS_Store" -delete
find . -name ".DS_Store" -print -delete
Вы также можете использовать расширенное подтягивание (**
):
rm -v **/.DS_Store
в zsh, bash 4 и аналогичных оболочках (если они не активированы, активируйте: shopt -s globstar
).
Создайте новый файл с текстовым редактором, скопируйте и вставьте в него следующий текст и сохраните его с расширением файла .sh, затем откройте файл с помощью терминала. Убедитесь, что текстовый редактор фактически сохраняет исходный текст и не сохраняет файл в виде файла Rich Text Format или другого формата текстового файла с дополнительной информацией в файле.
#!/bin/bash
echo -e "\nDrag a folder here and press the Enter or Return keys to delete all files whose names begin with a dot in its subfolders:\n"
read -p "" FOLDER
echo -e "\nThe following files will be deleted:\n"
find $FOLDER -name ".*"
echo -e "\nDelete these files? (y/n): "
read -p "" DECISION
while true
do
case $DECISION in
[yY]* ) find $FOLDER -name ".*" -delete
echo -e "\nThe files were deleted.\n"
break;;
[nN]* ) echo -e "\nAborting without file deletion.\n"
exit;;
* ) echo -e "\nAborting without file deletion.\n"
exit;;
esac
done
Вот как рекурсивно удалить файл .DS_Store
Открыть терминал В командной строке перейдите в папку, в которой находятся все файлы и папки: перейдите в /your/directory
Затем, наконец, введите следующую команду: - находить. -name '.DS_Store' -type f -delete
Нажмите Enter
Ура !!