Como removo os arquivos temporários do TextMate usando rm?

1

Observe que não estou tentando desativar a criação desses arquivos. Quero mantê-los por perto até estar pronto para confirmar as alterações no meu controle de origem.

Os arquivos estão espalhados por muitos subdiretórios do diretório principal do código-fonte e têm o formato "._". Por exemplo, test.txt se torna ._test.txt.

Eu tentei este comando, mas não funciona:

rm -rf ._*

Alguma ideia?

rinogo
fonte

Respostas:

3

A localização do GNU tem uma -deleteopção. Se você encontrar o GNU, isso deve funcionar (e deve ser imune a qualquer problema com espaço em branco e outros caracteres engraçados nos nomes dos arquivos):

find . -name '._*' -delete

A partir da documentação ( info find):

-- Action: -delete
    Delete files or directories; true if removal succeeded.  If the
    removal failed, an error message is issued.

    The use of the `-delete' action on the command line automatically
    turns on the `-depth' option (*note find Expressions::).  This can
    be surprising if you were previously just testing with `-print',
    so it is usually best to remember to use `-depth' explicitly.

    If `-delete' fails, `find''s exit status will be nonzero (when it
    eventually exits).
Keith Thompson
fonte
O OS X não é fornecido com o GNU find.
slhck
2

Decidiu usar isso:

find . -name "._*" -exec rm {} \;

No entanto, eu adoraria saber se há uma maneira melhor de fazer isso.

rinogo
fonte
Usando finde xargsé um pouco complicado. Leia o manual de localização que diz: "No entanto, você pode considerar o -print0primário em conjunto com xargs -0".
slhck
O uso {}dessa maneira causará erros graves nos arquivos com nomes com espaço em branco incorporado. Quase sempre correto para nós '{}'.
Chris Johnson