Sous Ubuntu, j'ouvre un terminal et fais
sudo bash
cd /
ls | head -n 1000
Et de manière prévisible, environ 20 répertoires sont renvoyés.
Cependant, si je fais un ls et que je ne le relie à rien, le ls se bloque jusqu'à ce que je le tue depuis un autre terminal. Que pourrait-il se passer?
ÉDITER:
> type ls
ls is aliased to `ls --color=auto`
ÉDITER:
> /bin/ls /
<normal response>
> /bin/ls --color=auto
<hangs indefinitely>
Pourquoi la coloration de la sortie de ls provoque-t-elle le blocage de cette commande?
strace ls
peut potentiellement vous aider à identifier le problème. strace
affiche tous les appels système effectués par le programme qu'il appelle.
/bin/ls
(ou plutôt, command ls
) d'exécuter ls
sans les options aliasées, pour confirmer si c'est l'option couleur qui fait la différence. FWIW, ls
désactive la coloration lorsque sa sortie est un tuyau ou un autre périphérique non terminal.
\ls
type ls
pour vérifier tous les alias possibles, etc.