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

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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *