Classificando a saída do meu diretório

0

Como posso criar um novo arquivo chamado Option1.txt na minha área de trabalho? Este arquivo deve  contém o conteúdo do meu diretório 'home'. E como eu faria minha saída:

  • Classificado em ordem alfabética por extensão de entrada.
  • Inclui arquivos e pastas ocultos.
  • Mostra todos os tamanhos de arquivo em formato legível por humanos
por user264934 03.04.2014 / 16:27

3 respostas

3

ls -alXh > Option1.txt

man ls ajudaria, também ...;)

    
por Fred B. 03.04.2014 / 16:38
3
ls -ahlX ~|awk '{printf "%-20s %-40s\n",$9,$5 }'>~/Desktop/Option1.txt

Ordenado alfabeticamente pela extensão de entrada. ( Using ls -X )

Inclui arquivos e pastas ocultos (usando ls -a )

Mostra todos os tamanhos de arquivo em formato legível por humanos (Usando ls -lh )

awk '{print $9,$5 } apenas imprime o nome e o tamanho dos arquivos e diretórios

e finalmente armazena no Option.txt.

%-20s %-40s\n é para formatar as colunas Mas isto não imprimirá o nome completo do diretório, como apontado nos comentários de @ Glenn Jackman, se houver espaços no nome do diretório.

Então,

Outra opção seria ( fonte )

ls -ahlX ~|gawk -F':[0-9]* ' '/:/{print $2}'>~/Desktop/Option1.txt

Este imprime os nomes dos arquivos, mesmo que haja espaços.

Mas é sempre uma má ideia analisar ls.

    
por Stormvirux 03.04.2014 / 16:45
0

A análise de saída de ls nunca é uma boa ideia. Minha abordagem seria usar du para listar o uso de disco para cada arquivo, com a opção --mad-depth para listar apenas o diretório atual (porque du é recursivo) e depois definir o comando sort para organizar a saída com base no segundo campo.

 du --all --max-depth 1 --human-readable | sort --key=2

Redirecionar isso para um arquivo é simplesmente du --all --max-depth 1 --human-readable | sort --key=2 > outputFileName.txt

Você também pode estar interessado em informações mais detalhadas do que as fornecidas por du . Consulte minha outra resposta que utiliza find e du (embora possa precisar ser modificado para incluir | sort parte): Comando 'ls' mostrando o tamanho do diretório em vez do tamanho do bloco

    
por Sergiy Kolodyazhnyy 13.02.2016 / 16:30