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

Questo comando funziona bene ma quali sono i %s %p opzioni utilizzate qui? Esistono altre opzioni che possono essere utilizzate?

Commenti

Risposta

Quali sono le% s% p opzioni utilizzate qui?

Da la pagina man :

% s Dimensioni del file in byte.

% p Nome del file.

Scorri verso il basso su quella pagina oltre tutte le lettere regolari per printf e leggi le parti precedute da%.

% n Numero di hard link al file.

% p File” snome.

% P Nome del file con il nome del punto di partenza sotto il quale è stato trovato rimosso.

% s Dimensione del file in byte.

% t Ora dellultima modifica del file nel formato restituito dalla funzione C “ctime”.

Esistono altre opzioni che possono essere utilizzate?

Ci sono. Vedere il collegamento alla pagina di manuale.

Commenti

  • @don_crissti I ' non capirà mai perché le persone preferiscono la documentazione web casuale alla documentazione installata sui loro sistemi (che ha lulteriore vantaggio di essere effettivamente rilevante per il loro sistema).
  • @Kusalananda – Beh, posso pensare a uno scenario in cui le persone includerebbero un link a una pagina web invece di una citazione dalla documentazione installata sul loro sistema: ' non erano su una macchina Linux al momento della stesura del post … Tuttavia, il link dovrebbe puntare (imo) ai documenti ufficiali (da qui il mio commento sopra, che, per qualche motivo sconosciuto, è stato cancellato dai mod …). A parte questo, sono pienamente daccordo con te: lOP dovrebbe consultare la pagina di manuale installata sul loro sistema.
  • @don_crissti Oppure si trovano su un server su cui non sono installate le manpage che è piuttosto frequente.
  • La mia pagina di manuale però tende ad essere di FreeBSD. A meno che non mi capiti di avere una VM Linux a portata di mano. E ho limpressione che la maggior parte delle domande siano basate su GNU / Linux.
  • Dovrei anche aggiungere che, oltre alloutput travolgente e spesso imperscrutabile delle pagine di manuale per utenti relativamente inesperti, come programmatore / utente esperto io ' di solito cerco nuove soluzioni che le pagine man non siano ' trattate. Ad esempio (solo ora), formato della data specifico per loutput del comando ' find '. La pagina man non ' ti dice di mettere "% T " davanti a ogni variabile – almeno non che ho trovato anche cercando quello specifico. Potresti passare tutto il giorno a cercare di capirlo. (O semplicemente dare.) Mentre una ricerca su Stack Exchange produrrà quella risposta, chiaramente spiegata, nel primo risultato.

Risposta

Barrett 2012 dice a pagina 74:

-printf string stampa la stringa data, a cui possono essere applicate delle sostituzioni alla maniera della funzione di libreria C printf(). “

e, ovviamente, raccomanda il manpage per lelenco completo delle opzioni. Mentre cose come find . -printf "%s %p\n" vengono spiegate, altre no. @jim ha menzionato luso di %T. Personalmente utilizzo uno script con una riga simile a find . -printf "%T@ %p\n" senza mai riuscire a capire cosa sia %T@. Qualcuno può fare riferimento a una fonte esplicativa per queste opzioni non trovate nelle manpage?

Commenti

  • Who ' è questo Barrett?
  • @Kusalananda, Daniel J. Barrett, autore della " Linux Pocket Guide " , la citazione della pagina si riferisce alla seconda edizione. Prima di correre in biblioteca, tieni presente che la soluzione a questa domanda non deve essere trovata lì dentro. Altrimenti una guida molto buona.
  • Potrebbe mancare dalla manpage di find ' nel corso della giornata. Ora dovresti vedere una voce specifica per% Tk, dove k è la stessa notazione usata in% Ak.Che afferma: @ = secondi dal 1 gennaio 1970, 00:00 GMT, con parte frazionaria.
  • @Nicholi | grazie, ha senso. Le volte in altri formati a volte non riescono a ordinare le cose bene.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *