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

Detta kommando fungerar bra men vad är %s %p alternativ som används här? Finns det några andra alternativ som kan användas?

Kommentarer

Svar

Vilka är% s% p-alternativen som används här?

Från mansidan :

% s Filens storlek i byte.

% p Filnamn.

Bläddra ner på den sidan utöver alla vanliga bokstäver för printf och läs de delar som kommer före ett%.

% n Antal hårda länkar till filen.

% p File” snamn.

% P Filnamn med namnet på startpunkten under vilken det hittades borttagen.

% s Filstorlek i byte.

% t Filens senaste ändringstid i formatet som returneras av C `ctime-funktionen.

Finns det några andra alternativ som kan användas?

Det finns. Se länken till manpage.

Kommentarer

  • @don_crissti I ' Jag förstår aldrig varför människor föredrar slumpmässig webbdokumentation framför den dokumentation som är installerad på deras system (vilket har den extra fördelen att det faktiskt är relevant för deras system).
  • @Kusalananda – Jag kan tänka mig ett scenario där människor skulle inkludera en länk till en webbsida istället för ett citat från dokumentationen installerad på deras system: de ' finns inte på en linux-maskin vid tidpunkten för inlägget … Men länken borde peka (imo) på de officiella dokumenten (därav min kommentar ovan, som av okänd anledning raderades av moderna …). Bortsett från detta håller jag helt med dig: OP: n bör se den manuella sidan installerad på deras system.
  • @don_crissti Eller så finns de på en server som inte har några manpages installerade som är ganska frekvent.
  • Min manualsida brukar dock komma från FreeBSD. Om jag inte har en Linux-virtuell dator inom räckhåll. Och jag har intrycket att de flesta frågorna är GNU / Linux-baserade.
  • Jag bör också tillägga att, förutom överväldigande och ofta obetydlig produktion av man-sidor för relativt oerfarna användare, som programmerare / kraftanvändare I ' Jag letar vanligtvis efter nya lösningar som man-sidor inte täcker '. Till exempel (just nu), specifikt datumformat för ' hitta ' kommandoutgång. Man-sidan säger inte ' t att sätta "% T " framför varje variabel – åtminstone inte så att jag ens hittade det specifikt. Du kan spendera hela dagen på att räkna ut det. (Eller bara ge.) Medan en sökning på Stack Exchange kommer att ge det svaret, tydligt förklarat, i det första resultatet.

Svar

Barrett 2012 säger på sidan 74:

-printf string skriv ut den givna strängen, som kan ha ersättningar tillämpade på den som C-biblioteksfunktionen printf(). ”

och rekommenderar naturligtvis manpage för en fullständig lista med alternativ. Medan saker som find . -printf "%s %p\n" förklaras, gör andra inte det. @jim har nämnt användningen av %T. Jag använder personligen ett skript med en rad som liknar find . -printf "%T@ %p\n" utan att någonsin kunna förstå vad den %T@ är. Kan någon hänvisa till en förklarande källa för dessa alternativ som inte finns på manpages?

Kommentarer

  • Vem ' är den här Barrett-killen?
  • @Kusalananda, Daniel J. Barrett, författare till " Linux Pocket Guide " , sidcitering hänvisar till den andra upplagan. Innan du springer till biblioteket, varnas att lösningen på den här frågan inte finns där inne. Annars en väldigt bra guide.
  • Kan ha saknats i hitta ' s hemsida under dagen. Du bör se en post nu specifikt för% Tk, där k är samma notation som används i% Ak.Som säger: @ = sekunder sedan 1 januari 1970, 00:00 GMT, med bråkdel.
  • @Nicholi | tack, det är vettigt. Tider i andra format misslyckas ibland med att sortera saker snyggt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *