2015-05-27 3 views
15

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

Спасибо за любой совет.

+0

Смотрите мой комментарий о принятом ответе. –

ответ

40

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

find . -name ".DS_Store" -delete 
+0

Вам необходимо исправить файл с именем «**». DS_Store »**, если используется« .DS_STORE », он не будет работать, поскольку имена файлов чувствительны к регистру. –

+0

@AmrLotfy На самом деле это не так, стандартная файловая система Mac нечувствительна к регистру – Others

+1

За дополнительной осторожностью я обычно исключаю такие каталоги: 'find. -name '.DS_Store' -type f -delete' – xApple

0

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

rm -v **/.DS_Store 

в Zsh, Баш 4 и подобные снаряды (если не включен, включите по: shopt -s globstar).

0

Сделайте новый файл с текстовым редактором, скопируйте и вставьте в него следующий текст и сохраните его с расширением файла .sh, затем откройте файл с помощью терминала. Убедитесь, что текстовый редактор фактически сохраняет исходный текст и не сохраняет файл в виде файла форматированного текста или другого текстового файла с дополнительной информацией в файле.

#!/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
find . -name ".DS_Store" -print -delete 
+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/17012288) – kelin

+0

@kelin, как это ответ на ссылку, когда нет ссылки? – ppperry

+0

@ppperry, это автоматическое сообщение из обзора. Я голосовал, чтобы удалить вас, потому что он не добавляет ничего важного по сравнению с принятым. – kelin

Смежные вопросы