find /tmp -printf "%s %p\n" |sort -n -r | head
Este comando está funcionando bem, mas quais são os %s %p
opções usadas aqui? Existem outras opções que podem ser usadas?
Comentários
- Dê uma olhada em find ' s manpage.
- possível duplicata de Onde encontrar a referência de formatação printf?
Resposta
Quais são as opções% s% p usadas aqui?
Da página do manual :
% s Tamanho do arquivo em bytes.
% p Nome do arquivo.
Role para baixo na página além de todas as letras regulares para printf e leia as partes que vêm prefixadas com%.
% n Número de links físicos para o arquivo.
% p Arquivo” snome.
% P Nome do arquivo com o nome do ponto de partida sob o qual foi encontrado removido.
% s Tamanho do arquivo em bytes.
% t Hora da última modificação do arquivo no formato retornado pela função C `ctime”.
Existem outras opções que podem ser usadas?
Existem. Veja o link para a página de manual.
Comentários
- @don_crissti Eu ' nunca entenderei por que as pessoas prefira documentação aleatória da web à documentação instalada em seus sistemas (que tem o benefício adicional de realmente ser relevante para seus sistemas).
- @Kusalananda – Bem, posso pensar em um cenário em que as pessoas incluiriam um link para uma página da web em vez de uma citação da documentação instalada em seu sistema: eles ' não estavam em uma máquina Linux no momento em que escrevia o post … No entanto, o link deve apontar (imo) para os documentos oficiais (daí meu comentário acima, que, por alguma razão desconhecida, foi excluído pelos mods …). Deixando isso de lado, concordo plenamente com você: o OP deve consultar a página de manual instalada no seu sistema.
- @don_crissti Ou eles estão em um servidor que não possui manpages instaladas que está bastante freqüente.
- Minha página de manual tende a ser do FreeBSD. A menos que eu tenha uma VM Linux ao meu alcance. E tenho a impressão de que a maioria das perguntas são baseadas em GNU / Linux.
- Devo também acrescentar que, além da saída opressiva e muitas vezes inescrutável de páginas de manual para usuários relativamente inexperientes, como um programador / usuário avançado I ' Geralmente procuro por novas soluções que as páginas do manual não ' cobrem. Por exemplo (agora), formato de data específico para a saída do comando ' find '. A página do manual não ' diz para você colocar "% T " na frente de cada variável – pelo menos não que eu achei mesmo procurando por isso especificamente. Você pode passar o dia todo tentando descobrir. (Ou apenas forneça.) Considerando que uma pesquisa no Stack Exchange produzirá essa resposta, claramente explicada, no primeiro resultado.
Resposta
Barrett 2012 diz na página 74:
” -printf
string
imprime a string fornecida, que pode ter substituições aplicadas a ela na maneira da função de biblioteca C printf()
. “
e recomenda, é claro, o manpage para a lista completa de opções. Embora coisas como find . -printf "%s %p\n"
sejam explicadas, outras não. @jim
mencionou o uso de %T
. Eu pessoalmente uso um script com uma linha semelhante a find . -printf "%T@ %p\n"
sem nunca ser capaz de entender o que é %T@
. Alguém pode fazer referência a uma fonte explicativa para essas opções não encontradas nas páginas de manual?
Comentários
- Quem ' é esse cara Barrett?
- @Kusalananda, Daniel J. Barrett, autor do " Linux Pocket Guide " , a citação de página refere-se à segunda edição. Antes de correr para a biblioteca, esteja avisado que a solução para esta questão não deve ser encontrada lá. Caso contrário, um guia muito bom.
- Pode estar faltando na página de manual de find ' s naquela época. Você deve ver uma entrada agora especificamente para% Tk, onde k é a mesma notação usada em% Ak.Que afirma: @ = segundos desde 1º de janeiro de 1970, 00:00 GMT, com parte fracionária.
- @Nicholi | obrigado, isso faz sentido. Os tempos em outros formatos às vezes não conseguem organizar as coisas de maneira adequada.