Explicación de las directivas% en find -printf

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

Este comando funciona bien, pero ¿cuáles son las %s %popciones utilizadas aquí? ¿Hay alguna otra opción que pueda usarse?

Arena1512
fuente
44
Echa un vistazo a la página de manual de find.
Cyrus

Respuestas:

25

¿Cuáles son las opciones% s% p utilizadas aquí?

Desde la página del manual :

% s Tamaño del archivo en bytes.

% p Nombre del archivo.

Desplácese hacia abajo en esa página más allá de todas las letras regulares para printf y lea las partes que vienen con el prefijo%.

% n Número de enlaces duros al archivo.

% p Nombre del archivo.

% P Nombre del archivo con el nombre del punto de partida bajo el cual se encontró eliminado.

% s Tamaño del archivo en bytes.

% t Tiempo de última modificación del archivo en el formato devuelto por la función C `ctime '.

¿Hay alguna otra opción que pueda usarse?

Existen. Vea el enlace a la página de manual.

Hennes
fuente
@don_crissti Nunca entenderé por qué las personas prefieren la documentación web aleatoria a la documentación instalada en sus sistemas (que tiene el beneficio adicional de ser realmente relevante para su sistema).
Kusalananda
1
@Kusalananda - Bueno, puedo pensar en un escenario en el que las personas incluirían un enlace a una página web en lugar de una cita de la documentación instalada en su sistema: no están en una máquina Linux al momento de escribir la publicación. Sin embargo, el enlace debe apuntar (imo) a los documentos oficiales (de ahí mi comentario anterior, que, por alguna razón desconocida, fue eliminado por los mods ...). Aparte de eso, estoy totalmente de acuerdo con usted: el OP debe consultar la página del manual instalada en su sistema.
don_crissti
2
@don_crissti O están en un servidor que no tiene instaladas páginas de manual, lo cual es bastante frecuente.
runlevel0
Sin embargo, la página de mi manual suele ser de FreeBSD. A menos que tenga una VM Linux al alcance. Y tengo la impresión de que la mayoría de las preguntas están basadas en GNU / Linux.
Hennes
3
También debo agregar que, además de la producción abrumadora y a menudo inescrutable de páginas de manual para usuarios relativamente inexpertos, como programador / usuario avanzado, generalmente estoy buscando soluciones novedosas que las páginas de manual no cubren. Por ejemplo (justo ahora), formato de fecha específico para la salida del comando 'buscar'. La página de manual no le dice que ponga "% T" delante de cada variable, al menos no es lo que encontré buscando eso específicamente. Podrías pasar todo el día tratando de resolverlo. (O simplemente dar.) Mientras que una búsqueda en Stack Exchange dará esa respuesta, explicada claramente, en el primer resultado.
Jim
0

Barrett 2012 dice en la página 74:

" -printfstring imprime la cadena dada, que puede tener sustituciones aplicadas a ella de la manera de la función de biblioteca C printf()".

y recomienda, por supuesto, la página de manual para la lista completa de opciones. Mientras que cosas como find . -printf '%s %p\n'se explican, otras no. @jimha mencionado el uso de %T. Yo personalmente uso un script con una línea similar a la que find . -printf '%T@ %p\n'nunca puedo entender de qué se %T@trata. ¿Alguien puede hacer referencia a una fuente explicativa para estas opciones que no se encuentran en las páginas de manual?

choklo
fuente
1
¿Quién es este tipo de Barrett?
Kusalananda
@Kusalananda, Daniel J. Barrett, autor de "Linux Pocket Guide", la cita de la página se refiere a la segunda edición. Antes de correr a la biblioteca, tenga en cuenta que la solución a esta pregunta no se encuentra allí. De lo contrario, una muy buena guía.
choklo