Explicação de% diretivas em find -printf

20
find /tmp -printf '%s %p\n' |sort -n -r | head

Este comando está funcionando bem, mas quais são as %s %popções usadas aqui? Existem outras opções que podem ser usadas?

Sand1512
fonte
4
Dê uma olhada na página de manual do find.
Cyrus

Respostas:

25

Quais são as opções de% s% p usadas aqui?

Na página do manual :

% s Tamanho do arquivo em bytes.

% p Nome do arquivo.

Role para baixo nessa página além de todas as letras regulares para printf e leia as partes que são prefixadas com%.

% n Número de links físicos para o arquivo.

% p Nome do arquivo.

% 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?

Tem. Veja o link para a página de manual.

Hennes
fonte
@don_crissti Eu nunca entenderei por que as pessoas preferem a documentação aleatória da Web à documentação instalada em seus sistemas (que tem o benefício adicional de ser realmente relevante para o sistema).
Kusalananda
11
@ Kusalananda - Bem, eu 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 escreviam o post. .. No entanto, o link deve apontar (imo) para os documentos oficiais (daí o meu comentário acima, que, por algum motivo desconhecido, foi excluído pelos mods ...). Além disso, concordo plenamente com você: o OP deve consultar a página de manual instalada em seu sistema.
17Documentário
2
@don_crissti Ou eles estão em um servidor que não possui páginas de manual instaladas, o que é bastante frequente.
usar o seguinte
Minha página de manual costuma ser do FreeBSD. A menos que eu tenha uma VM Linux ao seu alcance. E tenho a impressão de que a maioria das perguntas é baseada no GNU / Linux.
Hennes
3
Devo acrescentar também que, além da saída esmagadora e frequentemente inescrutável de páginas de manual para usuários relativamente inexperientes, como programador / usuário avançado, geralmente estou procurando novas soluções que as páginas de manual não cobrem. Por exemplo (agora), formato de data específico para a saída do comando 'find'. A página de manual não diz para você colocar "% T" na frente de cada variável - pelo menos não que eu tenha encontrado isso especificamente. Você poderia passar o dia todo tentando descobrir. (Ou apenas dê.) Considerando que uma pesquisa no Stack Exchange produzirá essa resposta, explicada claramente, no primeiro resultado.
26418 Jim
0

Barrett 2012 diz na página 74:

" -printfstring imprime a sequência especificada, que pode ter substituições aplicadas a ela da maneira da função da biblioteca C. printf()"

e recomenda, é claro, a página de manual para a lista completa de opções. Enquanto coisas como find . -printf '%s %p\n'são explicadas, outras não. @jimmencionou o uso de %T. Eu pessoalmente uso um script com uma linha semelhante a find . -printf '%T@ %p\n'sem nunca conseguir entender o que %T@é isso . Alguém pode fazer referência a uma fonte explicativa para essas opções não encontradas nas páginas de manual?

choklo
fonte
11
Quem é esse cara do Barrett?
Kusalananda
@ Kusalananda, Daniel J. Barrett, autor de "Linux Pocket Guide", a citação de página refere-se à segunda edição. Antes de você correr para a biblioteca, esteja avisado de que a solução para essa pergunta não deve ser encontrada lá. Caso contrário, um guia muito bom.
choklo 18/10