'xargs' 명령이 figlet에서는 작동하지 않지만 'ls' 인수로 실행하면 잘 작동하는 이유

'xargs' 명령이 figlet에서는 작동하지 않지만 'ls' 인수로 실행하면 잘 작동하는 이유

예를 들어:

  1. find /usr/share/figlet/ -type f -name "*.flf" | xargs ls -l
    
    -rwxr-xr-x 1 root root  3369 Mar 31 17:54 /usr/share/figlet/Tombstone.flf
    -rwxr-xr-x 1 root root  7641 Mar 31 17:54 /usr/share/figlet/Train.flf
    -rwxr-xr-x 1 root root  8336 Mar 31 17:54 /usr/share/figlet/Trek.flf
    -rwxr-xr-x 1 root root  9363 Mar 31 17:54 /usr/share/figlet/Tubular.flf
    -rwxr-xr-x 1 root root 15484 Mar 31 17:54 /usr/share/figlet/Univers.flf
    -rwxr-xr-x 1 root root  6644 Mar 31 17:54 /usr/share/figlet/usaflag.flf
    
  2. find /usr/share/figlet/ -type f -name "*.flf" | xargs figlet -f
    

첫 번째 명령은 출력을 생성하지만 두 번째 명령은 출력을 생성하지 않습니다. 그 이유는 무엇입니까?

답변1

나는 대답을 시도 할 것입니다 :

find /usr/share/figlet/ -type f -name "*.flf" | xargs -n 1 figlet -f

이 실행됩니다하나figlet 명령을 사용하여하나파일 이름, 다른 파일 이름을 가진 또 다른 figlet 명령 등.

예를 들어

find /usr/share/figlet/ -type f -name "*.flf" | xargs -t ls -l

그리고

find /usr/share/figlet/ -type f -name "*.flf" | xargs -t -n 1 ls -l

(그런데 저는 항상 xargs에 '-r'을 포함시킵니다. 이렇게 하면 입력이 없으면 xargs가 실행되지 않습니다. 그렇지 않으면 혼란스러운 빈 줄이 표시됩니다.)

관련 정보