Como posso usar ls
no linux para obter uma lista apenas dos nomes de arquivos, data e tamanho. Não preciso ver as outras informações, como proprietário ou permissão. Isso é possível?
linux
command-line
files
ls
Pinkie
fonte
fonte
ls
é excelente porque possui uma classificação muito rápida por data e hora, mas é difícil lidar com a formatação. Sugiro usar um token no estilo --time, como--time-style='+&%Y%m%d+%H%M%S.%N'
onde o token é '&', usando-o como referência, você poderá analisar ainda mais a saída,sed
para que você também possa voltar atrás como antes do tamanho do token! Se alguém quiser postar isso como uma resposta completa, sinta-se à vontade para, eu estou dormindo demais agora :) #Respostas:
Por que não usar em
stat
vez dels
?fonte
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
stat
, você pode adicionar largura informações para a cadeia de formato como função printf C, por exemplo"%y %8s %n"
, não está documentada, mas parece obras (coreutils 8.17, Fedora 18)ls
eu posso produzir com um separador de mil caracteres. Como isso funcionastat
?ls
. E as cores ??Você pode obter muito controle sobre como listar arquivos com o
find
utilitário.ls
realmente não permite que você especifique as colunas que deseja.Por exemplo:
O argumento para a
printf
ação é detalhado na página de manual. Você pode escolher informações diferentes sobre o horário, qual o tamanho desejado (tamanho do arquivo ou blocos de disco usados), etc. Você também pode tornar isso seguro para nomes de arquivos incomuns, se for necessário um processamento adicional.fonte
%C+
(saída "2016-08-29 + 10: 57: 56.9201257840") e%Cc
(saída "Mo 29 de agosto de 2016 10:57:56 CEST")Você sempre pode usar outro utilitário, como
awk
formatar a saídals
1 :1.Sim, geralmente, você não deve analisar a saída de ls, mas, neste caso, a pergunta exige especificamente ...
fonte
ls
estiver com alias (digamosalias ls='ls -i'
). Você realmente deve tomar muito cuidado se quiser analisar a saída do ls.ls
, mas é isso que o OP queria .../bin/ls
evitaria o problema de alias.) #ls
qual ambos concordemos que não satisfará o requisito de espaço em branco. A/bin/ls
sugestão é boa.-h
-lo para torná-lo legível por humanos. Especificamente eu usei:ls -lah | awk '{print $5,$6,$7,$8}'
que origina:4.0K Jan 24 18:17
. É verdade que a solução original não diz nada sobre o awk, mas no linux devemos assumir que a saída de um processo sempre será a entrada para outro processo, certo? ;)Você também pode usar o comando 'date'. É muito fácil de usar:
fonte
date -r foo*.txt
->date: extra operand "foo2.txt"
Se você deseja usar ls, mas preservar o tamanho adequado, pode usar:
fonte
onde o espaço é definido como o separador e f6 significa o campo 6
fonte
Você pode canalizar dois comandos
fonte
ls -s1 retorna o tamanho e o nome do arquivo apenas no AIX, não tem certeza sobre o Linux
fonte