在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
;它不知道别名。