Linux

為什麼“xargs”命令不適用於 figlet,但當我使用“ls”參數執行它時工作正常

  • April 3, 2020

例如:

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

第一個命令生成輸出,但第二個命令不生成。這背後的原因是什麼?

我將嘗試一個答案:

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 執行。否則你會得到一個令人困惑的空行。)

引用自:https://unix.stackexchange.com/questions/577665