Imprimir a partir da linha de comando

1

Por favor, alguém pode explicar o que exatamente esses comandos e opções fazem:

find /home/mike/Duck/ -type f -iname '*.txt' -print 0 | while IFS= read -r -d '' f;
 do lpr "$f" && mv "$f" /home/mike/Duck/printed/ ; done

e se eu quiser imprimir todas as extensões nesse diretório, o que devo fazer?

    
por Amro Ab 24.05.2015 / 02:11

1 resposta

4

O snippet de código que você forneceu requer uma modificação, você precisa de -print0 em vez de print 0 .

Este script encontrará ( find ) todos os arquivos com extensão txt em /home/mike/Duck/ , enviará para a impressora ( lpr ) um de cada vez e, em seguida, se isso retornar um sucesso ( && ) então o arquivo será movido ( mv ) para /home/mike/Duck/printed/ .

Se você deseja imprimir arquivos com extensões, use:

find /home/mike/Duck/ -type f -name '*.*' -print0 | while IFS= read -r -d '' f;
 do lpr "$f" && mv -i "$f" /home/mike/Duck/printed/ ; done

Isso pressupõe que todos os arquivos com extensões estão no formato file.ext e também imprimirá os arquivos com vários pontos. O -i com mv fornecerá um aviso antes de sobrescrever.

Observe também que isso pode ser feito usando apenas find :

find /home/mike/Duck/ -type f -name '*.*' -exec lpr {} \; -exec mv -i {} /home/mike/Duck/printed/ \;
    
por heemayl 24.05.2015 / 02:27