Xargs

xargs 不能在 Linux 中工作,因為它在 Unix 中工作

  • March 10, 2019

我正在使用以下命令列出權限,unix 中掛載點的所有者:

bdf|awk '{print $6}'|grep -v Mounted|xargs ll -d

HP-Ux 中的此命令為我提供如下輸出:

drwxr--r--  61 root       root          8192 Jan  1 2014 /
drwxr--r--  102 root       root          8192 Jan  1 2014 /home

但是在 Linux 中這個命令:

df -hP|grep -v Mounted|awk '{print $6}'|xargs 'll -d'

給出一個錯誤:

xargs: ll -d: No such file or directory

錯誤的根源是您ll -d在 xargs 的參數中引用了。 xargs然後嘗試執行一個文件ll -d,它在您的路徑上找不到任何位置。如果刪除引號,該命令可能會起作用。但是,如果ll是別名而不是 PATH 上的命令,則可能還需要ls直接使用:

df -hP | grep -v Mounted | awk '{print $6}' | xargs ls -ld

如果您的掛載點包含空格,則您的解析df將無法解釋這一點。

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