Questão Como recursivamente excluir todos os arquivos .DS_STORE de um diretório em uma máquina Windows?


Eu extraí um .zip arquivo compactado em um Mac e descobriu que a compressão incluiu todos os .DS_STORE arquivos meta-diretórios (acho que acostumaram a acelerar a pesquisa do holofote, mas além do ponto?).

Existe um one-liner que eu posso executar a partir de um script Windows PowerShell ou python simples para limpar essa pasta, excluindo recursivamente esses arquivos?

Eu recebo o erro: FIND: Parameter format not correct quando usando:

find . -name '*.DS_Store' -type f -delete

0


origem


A maneira mais fácil seria apenas procurar os arquivos no Windows Explorer (ctrl-f), realçá-los e excluí-los. - dangph


Respostas:


No PowerShell, faça o seguinte:

cd MyFolder

Get-ChildItem -recurse -filter .DS_STORE | Remove-Item -WhatIf

Quando você especifica -WhatIf, o PowerShell não fará alterações. Em vez disso, ele dirá o que teria feito. Quando você está feliz com o que vai fazer, então você pode remover o -WhatIf. (Sempre vale a pena ter cuidado ao fazer uma exclusão recursiva. Você não quer excluir as coisas erradas.)


2



Exclui apenas o primeiro .DS_STORE, não os outros no subdiretório - tarabyte
@tarabyte, desculpe, responda atualizado. - dangph
Talvez você também precise acompanhá-lo gci -recurse -filter "._*" | del -whatif para remover o lixo HFS. - Nick T


que find A sintaxe que você está usando no seu exemplo parece ser mais apropriada para configurações do Mac OS X ou Linux / Unix do que uma configuração do Windows. Em vez disso, talvez use o del comando como este no Windows como explicado aqui:

del /s /q /f /a:h .DS_STORE

0



Eu tentei isso também e recebo o erro: Remove-Item: A positional parameter cannot be found that accepts argument '/q' no diretório de interesse e usando o Windows PowerShell. - tarabyte