Удалите файлы .DS_STORE в текущей папке и всех подпапках из командной строки на Mac

Я понимаю, что могу использовать find . -name ".DS_STORE", чтобы найти все файлы .DS_STORE в текущей папке и во всех подпапках. Но как я могу удалить их из командной строки одновременно? Мне было очень неприятно переключаться между всеми папками и удалять их одну за другой.

Ответы

Ответ 1

find может это сделать. Просто добавьте -delete:

find . -name ".DS_Store" -delete

Ответ 2

find . -name ".DS_Store" -print -delete

Ответ 3

Вы также можете использовать расширенное подтягивание (**):

rm -v **/.DS_Store

в zsh, bash 4 и аналогичных оболочках (если они не активированы, активируйте: shopt -s globstar).

Ответ 4

Создайте новый файл с текстовым редактором, скопируйте и вставьте в него следующий текст и сохраните его с расширением файла .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

Ответ 5

Вот как рекурсивно удалить файл .DS_Store

Открыть терминал В командной строке перейдите в папку, в которой находятся все файлы и папки:   перейдите в /your/directory

Затем, наконец, введите следующую команду: -   находить. -name '.DS_Store' -type f -delete

Нажмите Enter

Ура !!