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
- Dai unocchiata a find ' s manpage.
- possibile duplicato di Dove trovare il riferimento alla formattazione di printf?
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.