xargs 在 Linux 中不像在 Unix 中那样工作

xargs 在 Linux 中不像在 Unix 中那样工作

我正在使用以下命令列出 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

答案1

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

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

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

相关内容