Trên AIX (nhưng điều này cũng xảy ra trên HP-UX), tôi có GNU ls trong đường dẫn của mình và nó cũng có biệt danh là ls
.
Khi tôi sử dụng xargs, nó thay vào đó sử dụng Unix tiêu chuẩn ls
thay vì bí danh.
Ví dụ: ( flocate
là một hàm tìm đường dẫn chính xác của chủ đề tìm kiếm):
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*
Tại sao xargs không sử dụng ls
bí danh?
ls
thực thi được trong$PATH
biến môi trường của bạn và nó có đứng trước thư mục (có thể/bin
) có chứa lệnh không phải GNUls
không? Vui lòng cập nhật câu hỏi của bạn để cho chúng tôi thấy giá trị thực tế của bạn$PATH
.xargs
sẽ thực thi lệnh đầu tiênls
mà nó tìm thấy trong một thư mục trong của bạn$PATH
; nó không biết về bí danh.