Como enviar arquivos do Find para outro programa?

0

Se este for o site da pilha incorreta *, peço desculpas, mas estou tentando enviar os resultados do find para outro aplicativo? O que estou tentando fazer é encontrar todos os arquivos * .plist e enviá-los para o plutil para convertê-los para o formato binário. Mas eu não sei como "pipe" (eu sei, terminologia errada, mas funciona.) -Los em plutil.

Não, estou tentando convertê-los em lote, usando a entrada do find, porque ele procura recursivamente por cada plist e, em seguida, quero enviar TODAS as plsticas encontradas em uma determinada pasta para o plutil.

    
por MarcusJ 23.01.2013 / 18:13

2 respostas

2

Isso vale a pena repetir. Se você quiser agir em um conjunto de arquivos…

Você nunca precisa canalizar a saída de find para outra coisa.

Piping a saída de um comando que lhe dá uma lista de arquivos muitas vezes é feito errado. Você não precisa de um for para isso, e você não deve precisar de find … | xargs .

Para atuar em um conjunto de arquivos encontrados por find , use a opção -exec .

find /some/path -iname '*.plist' -exec plutil -convert xml1 '{}' \;

Aqui, o '{}' é substituído pelo nome de cada arquivo encontrado.

Se você quiser que uma maneira robusta de canalizar find output atue nos arquivos encontrados em um loop, considere isto:

find … -print0 | while IFS= read -r -d '' file
do
    plutil -convert xml1 "$file"
done
    
por 23.01.2013 / 18:37
-2

Existem problemas de permissão que atrapalham você?

Caso contrário, tente isto:

link

OR

dando início a 'ls' resulta em script de shell bash

-Justin

EDIT - Adicionado outro link para que você possa clicar nele.

    
por 23.01.2013 / 18:16