我知道可以使用find . -name ".DS_Store"
来查找当前文件夹和所有子文件夹中的所有.DS_Store文件。但是如何同时从命令行中删除它们呢?我发现反复切换到所有文件夹并逐个删除它真的很烦人。
我知道可以使用find . -name ".DS_Store"
来查找当前文件夹和所有子文件夹中的所有.DS_Store文件。但是如何同时从命令行中删除它们呢?我发现反复切换到所有文件夹并逐个删除它真的很烦人。
find
命令可以做到这点。只需添加 -delete
参数:
find . -name ".DS_Store" -delete
将其扩展到打印它们的相对路径
find . -name ".DS_Store" -print -delete
为了更加谨慎,您可以排除目录并仅过滤文件。
find . -name ".DS_Store" -type f -delete
find . -name '.DS_Store' -type f -delete
- xApple2>/dev/null 1>/dev/null
来使其静音。 - Samie Bencheriffind . -name ".DS_Store" -print -delete
这将删除当前路径中所有名为.DS_Store
的文件,并显示它们的相对路径。
以下是如何递归删除 .DS_Store
文件的方法:
打开终端 在命令行中,转到包含所有文件和文件夹的文件夹的位置:
cd to/your/directory
最后,键入以下命令:
find . -name '.DS_Store' -type f -delete
按下回车键
干杯!!
您还可以使用扩展的通配符(**
):
rm -v **/.DS_Store
在zsh、bash 4以及类似的shell中(如果未启用,请通过shopt -s globstar
激活)。
grep -r "\x00" app/src/main/res
和
rm -v **/.DS_Store
这解决了问题。 - display name最干净的做法是使用:
find . -type f \( -name ".DS_Store" -o -name "._.DS_Store" \) -delete -print 2>&1 | grep -v "Permission denied"
这将删除文件,隐藏“权限被拒绝”错误(同时保留其他错误),打印出已删除文件的清单。
除非您有特定的原因要删除这些.DS_Store文件(例如Windows共享),否则最好将它们保持“原样”。删除.DS_Store文件没有性能上的好处。它们是无害的文件,通常不会导致任何问题。请记住,.DS_Store文件保存了您个性化的文件夹设置,如图标排列和列排序。这就是为什么您通常不想删除它们而是希望将它们隐藏起来的原因。
如果您确实需要删除它们,还有一种方法在这里没有提到:
sudo find / -name “.DS_Store” -depth -exec rm {} \;
ls
命令,这个文件不会被列出来,因为它是隐藏的。 - Timo使用文本编辑器创建一个新文件,将以下文本复制并粘贴到其中,然后使用“.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
文件,这个方法非常有效...
zip -r -X archive_name.zip folder_to_compress
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
(并重新启动)。 - norok2