!["xargs" 명령이 Figlet에서는 작동하지 않지만 "ls" 인수로 실행하면 잘 작동하는 이유는 무엇입니까?](https://linux55.com/image/170375/%22xargs%22%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20Figlet%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%A7%80%EB%A7%8C%20%22ls%22%20%EC%9D%B8%EC%88%98%EB%A1%9C%20%EC%8B%A4%ED%96%89%ED%95%98%EB%A9%B4%20%EC%9E%98%20%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
예를 들어:
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
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가 입력 없이 실행되는 것을 방지할 수 있습니다. 그렇지 않으면 혼란스러운 빈 줄이 표시됩니다.)