Sur AIX (mais cela se produit également sur HP-UX), j'ai des GNU ls sur mon chemin et il est également alias comme ls
.
Lorsque j'utilise xargs, il utilise à la ls
place l' Unix standard au lieu de l'alias.
Par exemple ( flocate
est une fonction qui trouve le chemin exact du sujet de recherche):
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*
Pourquoi xargs n'utilise-t-il pas l' ls
alias?
ls
exécutable GNU se trouve-t-il dans votre$PATH
variable d'environnement et précède-t-il (probablement/bin
) le répertoire contenant lals
commande non GNU ? Veuillez mettre à jour votre question pour nous montrer la valeur réelle de votre$PATH
.xargs
exécutera la premièrels
commande qu'il trouve dans un répertoire de votre$PATH
; il ne connaît pas les alias.