我知道我可以在当前文件夹和所有子文件夹中使用find . -name ".DS_STORE"
到find all the .DS_STORE files。但是如何同时从命令行中删除它们呢?我发现来回切换到所有文件夹并逐个删除它真的很烦人。
谢谢你的建议。
find
可以做到这一点。只需添加-delete
:
find . -name ".DS_Store" -delete
find . -name ".DS_Store" -print -delete
你也可以使用扩展的globbing(**
):
rm -v **/.DS_Store
在zsh,bash 4和类似的shell中(如果没有启用,请激活:shopt -s globstar
)。
使用文本编辑器创建一个新文件,将以下文本复制并粘贴到其中,然后使用“.sh”文件扩展名保存,然后使用“终端”打开该文件。确保文本编辑器实际上是保存原始文本,而不是将文件保存为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
以下是如何以递归方式删除.DS_Store文件
打开终端在命令行中,转到所有文件和文件夹所在的文件夹的位置:cd to / your / directory
最后,输入以下命令: - find。 -name'.DS_Store'-type f -delete
按Enter键
干杯!!