GNU/Linux >> Tutoriels Linux >  >> Linux

Faites en sorte que ls imprime tout sur une seule ligne (comme dans le terminal)

Solution 1 :

ls | xargs

Cela fonctionne pour moi, c'est le moyen le plus simple que j'ai jamais trouvé. J'espère que cela vous aidera également.

Solution 2 :

Je ne connais pas de commutateur qui pourrait faire cela, mais vous pouvez diriger votre sortie via tr pour le faire :

ls | tr "\n" " " | <whatever you like>

Solution 3 :

Si votre ls a cette option, vous pouvez utiliser une valeur élevée et cela pourrait faire ce que vous voulez :

ls -w 10000 -C . | head

Solution 4 :

ah, maintenant que vous avez mis à jour la question...

while true ; do echo * ; done | uniq

fera ce que vous avez posté, juste plus simple.

cependant, vous feriez mieux d'utiliser quelque chose qui utilise inotify pour ce faire... comme

inotifywait -m . -e create,delete

si vous n'avez pas inotify, alors quelque chose comme ça fonctionne bien aussi :

import os
import time

last = set()
while True:
    cur = set(os.listdir('.'))
    added = cur-last
    removed = last-cur
    if added: print 'added', added
    if removed: print 'removed', removed
    last = set(os.listdir('.'))
    time.sleep(0.1)

Solution 5 :

Qu'en est-il du tout à fait trivial

echo *

? :-) Vous n'avez même pas besoin de bifurquer pour cela. :-)


Linux
  1. Imprimer deux fichiers sur deux colonnes ?

  2. Comment faire défiler l'écran comme un terminal normal ?

  3. Imprimer tous les fichiers d'un dossier ?

  4. Comment coller des codes bash multilignes dans le terminal et les exécuter en même temps ?

  5. Serveur FTP sur une ligne

Imprimer des fichiers depuis votre terminal Linux

Comment imprimer un fichier JSON dans un terminal Linux

Imprimer les derniers événements spatiaux avec Nextinspace dans le terminal

Déplacer tous les fichiers sauf un

Comment puis-je faire en sorte que grep imprime les lignes en dessous et au-dessus de chaque ligne correspondante?

Comment faire un global ~/.vimrc ?