Apagando com segurança todos os arquivos de um determinado nome

2

No Mac OS X, os arquivos .DS_Store parecem conter configurações de exibição personalizadas para o diretório quando ele é exibido no Finder (GUI do gerenciador de arquivos). Eu quero que todo diretório use minhas configurações de visualização padrão.

Este comando shell é seguro para excluir todos eles (para os quais tenho permissão) da unidade? ou seja, sem chance ou falsos positivos ou outros percalços.

cd /
find . -name .DS_Store -print0 2>/dev/null | xargs -0 -p rm
    
por xyz 21.07.2010 / 14:32

2 respostas

6

Nenhuma das respostas dadas até agora abordou a questão da segurança e também não posso compreender de forma abrangente. No entanto, posso dizer que o comando que você mostra funcionará como você pretende (além disso, você tem a segurança extra de ser avisado antes de cada arquivo ser removido).

Eu adicionaria -type f para um pouco mais de segurança.

A desvantagem das outras respostas é que ou elas não avisam para continuar, lento (mas solicitando permissão torna isso irrelevante), falharia se houvesse um grande número de arquivos para excluir (excedendo o comprimento da linha de comando máximo) ou falharia se houvesse espaços no nome do arquivo (o que não se aplica neste caso).

Aqui está outra forma de completude:

find / -name .DS_Store -type f -exec rm -i {} +

Solicita confirmação. Seria aproximadamente a mesma velocidade que a versão xargs (exceto que está solicitando cada arquivo). Ele manipularia nomes de arquivos com espaços se isso fosse aplicável. Ele irá lidar com qualquer número de arquivos.

    
por 21.07.2010 / 15:29
2

Por que não usar apenas find para a coisa toda?

find / -name .DS_Store -delete

    
por 21.07.2010 / 14:42