Diferença no cli “find” entre o debian e o macOS

0

Eu apenas mudei de mDebian para o macOS depois que meu laptop caiu. Felizmente eu estava pronto para salvar meu .zshrc com meus aliases, no entanto, m dois aliases que usam "find" não parecem funcionar no macOS e não tenho certeza qual é a diferença.

O primeiro comando deve mover todos os arquivos dos subdiretórios para o diretório atual e funcionou perfeitamente no debian:

alias mup='find -type f -exec mv {} . \;'

No macOS, porém, recebo um "find: illegal option - t"

Da mesma forma, para alterar o arquivo que termina em JPG para jpg, usei

alias jprn="find -name '*.JPG' -exec rename "s/.JPG/.jpg/g" \{\} \;"

que resulta em outro "find: illegal option - n"

Infelizmente, o erro é bastante misterioso, então nem sei por onde começar a procurar uma solução, já que todas as alças parecem estar corretas com base no homem.

Qualquer informação ou ponteiro seria muito apreciado!

Obrigado

    
por user772111 17.09.2017 / 14:49

1 resposta

1

para mup , find precisa de um argumento path :

alias mup='find . -type f -exec mv {} . \;'

para jprn , find precisa de um argumento path . Além disso, não há nenhum comando rename no macOS (você pode instalá-lo com o Homebrew ). Isso é o melhor que eu poderia fazer no momento:

alias jprn='find . -name "*.JPG" -print | while read -r f; do mv "$f" "${f/%JPG/jpg}"; done'

${f/%JPG/jpg} substitui $f terminando em JPG com jpg , consulte a última parte da seção "Expansão de parâmetro" em man zshexpn .

    
por 17.09.2017 / 16:28