為什麼“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 在沒有輸入的情況下運行。否則您會得到一個令人困惑的空白行。)

相關內容