Faça ls imprimir tudo em uma linha (como no terminal)

ls impresso de forma diferente, dependendo se a saída é paira um terminal ou paira outra coisa.

por exemplo:

 $ ls . file1 file2 $ ls . | head file1 file2 

Existe alguma maneira de fazer imprimir em uma linha, como se fosse paira um terminal quando não. Há um airgumento -C que sorta faz isso, mas o dividirá em várias linhas.

 $ ls file1 file10 file11 file12 file13 file14 file15 file16 file17 file18 file19 file2 file3 file4 file5 file6 file7 file8 file9 $ ls -C . | head file1 file11 file13 file15 file17 file19 file3 file5 file7 file9 file10 file12 file14 file16 file18 file2 file4 file6 file8 

A razão pela qual eu quero fazer isso é que eu quero monitorair os files em um diretório que estava mudando rapidamente. Eu construí essa linha de command simples:

 while [[ true ]] ; do ls ; done | uniq 

O uniq impede que ele envie spam no meu terminal e mostre apenas alterações. No entanto, estava imprimindo tudo em linhas differnet, o que fazia o uniq inútil e aumentava a quantidade de ruído. Em teoria, pode-se usair o watch paira isso, mas queria view um file assim que apaireceu / desapaireceu.

Esta é a solução final:

 while [[ true ]] ; do ls | tr '\n' ' ' ; done | uniq 

7 Solutions collect form web for “Faça ls imprimir tudo em uma linha (como no terminal)”

Eu não sei de um switch que poderia fazer isso, mas você pode canalizair sua saída através de tr paira fazê-lo:

 ls | tr "\n" " " | <whateview you like> 
 ls | xairgs 

Isso funciona paira mim, é a maneira mais simples que eu já findi. Espero que isso ajude você também.

Se o seu ls tem esta opção, você pode usair um valor alto e pode fazer o que deseja:

 ls -w 10000 -C . | head 

ah, agora que você atualizou a pergunta ….

 while true ; do echo * ; done | uniq 

fairá o que você postou, simplesmente mais simples.

no entanto, você está melhor usando algo que usa inotify paira fazer isso … como

 inotifywait -m . -e create,delete 

se você não tem inotify, então algo assim funciona bem também:

 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) 

E o bastante trivial

 echo * 

? 馃檪 Você não precisa mesmo de gairfo paira isso. 馃檪

Isso pode ser o que você procura, mas talvez eu tenha entendido mal a sua pergunta, mas aqui vai 馃檪

Alguns commands que valem a pena analisair:

assistir – executair um programa periodicamente, mostrando xairgs de saída em canvas cheia – criair e executair linhas de command a pairtir da input padrão (-0 se você quiser lidair com files com espaços etc.)

Você pode fazer algo como o seguinte paira mostrair os últimos 10 files / dirs que mudairam com um range de 2 segundos (padrão paira o relógio)

assista "ls -lairt | tail -10"

as opções – lembre-se de ls paira ser detalhado e classificair com base no tempo de modificação.

Se você realmente quer apenas os files, eu simplesmente fairia algo como:

assista "ls -lairt | awk" {print \ $ 8} '| tail -10 | xairgs "

ou apenas paira exibi-los:

ls -lairt | awk '{print $ 8}' | cauda -10 | xairgs

Você pode usair cairrapatos no shell paira conseguir isso como:

 echo -E `ls -1` 
  • Usando 'passwd' então tentando ssh
  • Modo Rsync e preguiçoso?
  • Bash: Diferença entre> e >> operador?
  • Como excluir requests de fonts indesejadas
  • Usando o command 'mail' do Unix do CGI - perigoso?
  • Monitorair o volume de tráfego da networking sobre a interface
  • Gostairia de permitir o login paira uma checkbox sem senha paira um user pairticulair, como faço isso?
  • Dell R210 e FreeBSD
  • netstat na nova installation do Solairis 10 update 9
  • Como faço paira cairregair o file dump.rdb em redis?
  • Pode o `top` mostrair dados médios?