xargs 在 Linux 中不起作用,因为它在 Unix 中起作用

Sam*_*m G 2 xargs

我正在使用以下命令列出 unix 中挂载点所有者的权限:

bdf|awk '{print $6}'|grep -v Mounted|xargs ll -d
Run Code Online (Sandbox Code Playgroud)

HP-Ux 中的此命令为我提供了如下输出:

drwxr--r--  61 root       root          8192 Jan  1 2014 /
drwxr--r--  102 root       root          8192 Jan  1 2014 /home
Run Code Online (Sandbox Code Playgroud)

但是在 Linux 中这个命令:

df -hP|grep -v Mounted|awk '{print $6}'|xargs 'll -d'
Run Code Online (Sandbox Code Playgroud)

给出一个错误:

xargs: ll -d: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Ste*_*n D 5

错误的根源在于您ll -d在 xargs 的参数中引用了引号。 xargs然后试图执行一个文件ll -d,它在你的路径上找不到任何地方。如果删除引号,该命令可能会起作用。但是,如果ll是别名而不是PATH上的命令,则可能还需要ls直接使用:

df -hP | grep -v Mounted | awk '{print $6}' | xargs ls -ld
Run Code Online (Sandbox Code Playgroud)

如果您有包含空格的挂载点,您的解析df将无法解释这一点。