GNU/Linux >> Linux Esercitazione >  >> Linux

Fai in modo che ls stampi tutto su una riga (come nel terminale)

Soluzione 1:

ls | xargs

Funziona per me, è il modo più semplice che abbia mai trovato. Spero che questo aiuti anche te.

Soluzione 2:

non conosco un interruttore che possa farlo, ma puoi reindirizzare il tuo output attraverso tr per farlo:

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

Soluzione 3:

Se il tuo ls ha questa opzione, puoi usare un valore alto e potrebbe fare quello che vuoi:

ls -w 10000 -C . | head

Soluzione 4:

ah, ora che hai aggiornato la domanda....

while true ; do echo * ; done | uniq

farà quello che hai postato, solo più semplice.

tuttavia, è meglio usare qualcosa che usa inotify per farlo... come

inotifywait -m . -e create,delete

se non hai inotify, anche qualcosa del genere funziona bene:

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)

Soluzione 5:

Che dire del piuttosto banale

echo *

? :-) Non hai nemmeno bisogno di sborsare per questo. :-)


Linux
  1. Stampa due file in due colonne?

  2. Modo per far scorrere lo schermo come un normale terminale?

  3. Stampa tutti i file in una cartella?

  4. Condizione di una riga Check-in Makefile?

  5. GameHub:tutti i tuoi giochi in un unico posto

Stampa i file dal tuo terminale Linux

Come stampare abbastanza file JSON nel terminale Linux

Stampa gli ultimi eventi spaziali con Nextinspace nel terminale

Server FTP a una linea

inviare posta dal terminale Linux in una riga

Conversione di una bella stampa JSON in una riga