我明白我可以使用find . -name ".DS_Store"
来发现所有的.DS_Store文件 在当前文件夹和所有子文件夹。但是,如何才能同时从命令行删除它们呢?我发现来回切换到所有文件夹并一一删除它确实很烦人。
我明白我可以使用find . -name ".DS_Store"
来发现所有的.DS_Store文件 在当前文件夹和所有子文件夹。但是,如何才能同时从命令行删除它们呢?我发现来回切换到所有文件夹并一一删除它确实很烦人。
Answers:
find
可以做到的。只需添加-delete
:
find . -name ".DS_Store" -delete
find . -name '.DS_Store' -type f -delete
2>/dev/null 1>/dev/null
到unix命令以使其安静。
使用文本编辑器创建一个新文件,将以下文本复制并粘贴到其中,并以“ .sh”文件扩展名保存,然后使用Terminal打开该文件。确保文本编辑器实际上是在保存原始文本,而不是将文件另存为RTF格式文件或其他文件中带有其他信息的文本文件格式。
#!/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