在AIX上(但在HP-UX上也会发生这种情况),我的路径中有GNU ls,它也别名为ls。
当我使用xargs时,它改用标准Unix ls而不是别名。
例如(flocate是一个可以找到搜索主题确切路径的函数):
flocate mirrorvg | xargs ls -lh
ls: illegal option -- h
usage: ls [-1ACFHLNRSabcdefgiklmnopqrstuxEUX] [File...]
ls -lh /usr/sbin/mirrorvg
-r-xr-x--- 1 root system 37K apr 3 2014 /usr/sbin/mirrorvg*
为什么xargs不使用ls别名?
ls您的$PATH环境变量中是否包含GNU 可执行文件的目录,并且该目录是否在/bin包含非GNUls命令的目录之前(可能是)?请更新您的问题,向我们显示您的实际价值$PATH。xargs将执行在您的目录中找到的第一个ls命令$PATH;它不知道别名。