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

Este comando funciona bien, pero ¿cuáles son los %s %p opciones utilizadas aquí? ¿Hay otras opciones que se puedan utilizar?

Comentarios

Respuesta

¿Cuáles son las% s% p opciones que se utilizan aquí?

Desde la página de 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 lee las partes que vienen con el prefijo%.

% n Número de enlaces físicos al archivo.

% p Archivo» snombre.

% 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 Hora de la última modificación del archivo en el formato devuelto por la función C `ctime».

¿Hay otras opciones que se puedan utilizar?

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

Comentarios

  • @don_crissti I ' nunca entenderé por qué la gente 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 – 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 debería apuntar (en mi opinión) 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 debería consultar la página del manual instalada en su sistema.
  • @don_crissti O están en un servidor que no tiene páginas de manual instaladas, que es bastante frecuente.
  • Sin embargo, mi página de manual tiende a ser de FreeBSD. A menos que tenga una máquina virtual Linux a mi alcance. Y tengo la impresión de que la mayoría de las preguntas están basadas en GNU / Linux.
  • 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 ' Normalmente busco soluciones novedosas que las páginas de manual no ' cubran. Por ejemplo (justo ahora), formato de fecha específico para la salida del comando ' find '. La página de manual no ' t le dice que coloque "% T " delante de cada variable, al menos no que encontré incluso buscando eso específicamente. Podrías pasar todo el día tratando de averiguarlo. (O simplemente dé). Mientras que una búsqueda en Stack Exchange arrojará esa respuesta, claramente explicada, en el primer resultado.

Respuesta

Barrett 2012 dice en la página 74:

» -printf string imprime la cadena dada, que puede tener sustituciones aplicadas en la forma de la función de biblioteca C printf(). «

y recomienda, por supuesto, la página de manual para ver la lista completa de opciones. Mientras que cosas como find . -printf "%s %p\n" se explican, otras no. @jim ha mencionado el uso de %T. Yo personalmente uso una secuencia de comandos con una línea similar a find . -printf "%T@ %p\n" sin ser capaz de entender qué es esa %T@. ¿Alguien puede hacer referencia a una fuente que explique estas opciones que no se encuentran en las páginas de manual?

Comentarios

  • Quién ' ¿Es este Barrett?
  • @Kusalananda, Daniel J. Barrett, autor de " Guía de bolsillo de Linux " , la cita de la página se refiere a la segunda edición. Antes de ir a la biblioteca, tenga en cuenta que la solución a esta pregunta no es encontrarla allí. De lo contrario, es una muy buena guía.
  • Es posible que no se haya incluido en la página de manual de find ' en el pasado. Debería ver una entrada ahora específicamente para% Tk, donde k es la misma notación que se usa en% Ak.Que dice: @ = segundos desde el 1 de enero de 1970, 00:00 GMT, con parte fraccionaria.
  • @Nicholi | gracias, eso tiene sentido. Los tiempos en otros formatos a veces no logran ordenar bien las cosas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *