現在のフォルダーとすべてのサブフォルダーでfind . -name ".DS_STORE"
を使用して すべての.DS_STOREファイルを検索 できることを理解しています。しかし、それらをコマンドラインから同時に削除するにはどうすればよいですか?すべてのフォルダーに切り替えて、1つずつ削除するのは本当に面倒です。
find
でできます。 -delete
を追加するだけです:
find . -name ".DS_Store" -delete
find . -name ".DS_Store" -print -delete
拡張グロビング(**
):
rm -v **/.DS_Store
zsh、bash 4、および同様のシェル(有効になっていない場合は、shopt -s globstar
)。
テキストエディタで新しいファイルを作成し、次のテキストをコピーして貼り付け、「。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
.DS_Storeファイルを再帰的に削除する方法は次のとおりです。
ターミナルを開くコマンドラインで、すべてのファイルとフォルダーがあるフォルダーの場所に移動します。cd to/your/directory
最後に、以下のコマンドを入力します:-find -name '.DS_Store' -type f -delete
Enterを押す
乾杯!!