![如何从 Windows 机器上的目录中递归删除所有 .DS_STORE 文件?](https://linux22.com/image/1445383/%E5%A6%82%E4%BD%95%E4%BB%8E%20Windows%20%E6%9C%BA%E5%99%A8%E4%B8%8A%E7%9A%84%E7%9B%AE%E5%BD%95%E4%B8%AD%E9%80%92%E5%BD%92%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%20.DS_STORE%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我解压了一个.zip
在 Mac 上压缩的文件,发现压缩文件包含了所有的.DS_STORE
元目录文件(我认为这是为了加快聚光灯搜索的速度,但与此无关?)。
是否有一个可以从 Windows PowerShell 或简单的 python 脚本执行的单行程序,通过递归删除这些文件来清理此文件夹?
FIND: Parameter format not correct
我使用时出现错误:
find . -name '*.DS_Store' -type f -delete
答案1
在 PowerShell 中执行以下操作:
cd MyFolder
Get-ChildItem -recurse -filter .DS_STORE | Remove-Item -WhatIf
当您指定 时-WhatIf
,PowerShell 将不会进行任何更改。相反,它会告诉您它会做什么。当您对它将要执行的操作感到满意时,您可以删除-WhatIf
。(执行递归删除时务必小心。您不想删除错误的内容。)
答案2
答案3
客观的:删除 Windows 下当前目录和所有子目录中出现的“.DS_Store”和“._.DS_Store”。
Windows“查找”实用程序的工作方式与Linux“查找”不同。我强烈建议您使用Cygwin(可用这里)。Cygwin 提供 Linux 实用程序,并使其在 Windows 下可用。一旦您拥有 Cygwin,您就可以导航到您选择的基本目录:
例如:要导航到 c:\projects,您需要运行:
cd /cygdrive/c/projects
进入您选择的文件夹/目录后,您可以运行以下两个命令。
# First let's find all occurrences of both ".DS_Store" and "._.DS_Store" (recursive)
find . -type f \( -name ".DS_Store" -o -name "._.DS_Store" \) -print0
# After we have ensured that the results are good then let's rerun and pipe it to the rm (remove) command via xargs
find . -type f \( -name ".DS_Store" -o -name "._.DS_Store" \) -print0 | xargs -0 rm
这现在应该会从 Windows 目录中删除这两个文件的所有出现位置(递归)
干杯