Problemas na saída de eco de piping para o script xargs para o comando mv

2

e agradeço antecipadamente por qualquer conselho.

Estou trabalhando em um script que classificará automaticamente meus downloads. O script é muito simples e executá-lo manualmente tem o efeito pretendido. O problema que estou tendo é com o comando fswatch que tem a intenção de acionar o script - não consigo obter a saída do eco corretamente canalizada para xargs. Aqui está o comando:

fswatch --event Created Downloads/ | (while read x; do echo $x | xargs -0 bash ./dlsort.sh; done)

e o script:

if (echo "" | grep -q '\.jpg$'); then
  mv "" Desktop/images/ &
else
  mv "" Downloads/other/ &
fi

Eu determinei qual é o problema, só não sei como corrigi-lo. um caractere de nova linha é colocado no final do nome do arquivo, o que faz com que o comando mv falhe com um erro "no such file or directory" no script. Eu tenho experimentado com algumas variações nos comandos echo e fswatch, mas nada que eu tentei funcionou.

Obrigado novamente a qualquer um que possa ajudar com isso

    
por Curtis Everingham 09.12.2015 / 17:47

1 resposta

1

Descobri uma boa resposta para esse problema específico:

Use a opção fswatch --format="% p% 0". Isso garante que o caractere nulo esteja no final do nome do caminho que foi transferido para xargs, que é o que está procurando com a opção -0 ativada.

    
por Curtis Everingham 09.12.2015 / 20:39