Alors que xargs -0
est destiné à être utilisé pour une entrée délimitée par \0 (comme find -print0
), ls
n'a pas une telle option pour délimiter sa sortie de cette manière.
Cependant,
ls -1 /path/glob | tr '\n' '\0' | xargs -0 -n 1 basename
ferait l'affaire pour convertir les nouvelles lignes en null en cours de route. Cela permet alors à xargs de travailler avec des noms qui ont des espaces.
EDIT :ajout de -n 1
à xargs
J'utilise ceci :
ls | tr '\n' '\n'
Cela donne une liste comme :
file1.mp3
file2.mp3
file3.mp3
...
ls -1 <path> | sed 's#.*/##'