find /tmp -printf "%s %p\n" |sort -n -r | head
Deze opdracht werkt prima, maar wat zijn de %s %p
opties hier gebruikt? Zijn er nog andere opties die kunnen worden gebruikt?
Reacties
- Bekijk ' s manpage.
- mogelijk duplicaat van Waar vind je printf-opmaakreferentie?
Antwoord
Wat zijn de% s% p-opties die hier worden gebruikt?
Van de man-pagina :
% s Bestandsgrootte in bytes.
% p Bestandsnaam.
Scroll naar beneden op die pagina voorbij alle gewone letters voor printf en lees de delen die voorafgegaan worden door een%.
% n Aantal harde links naar bestand.
% p Bestand” snaam.
% P Bestandsnaam met de naam van het startpunt waaronder het werd verwijderd gevonden.
% s Bestandsgrootte in bytes.
% t Tijdstip van laatste wijziging van bestand in het formaat dat wordt geretourneerd door de functie C `ctime”.
Zijn er nog andere opties die kunnen worden gebruikt?
Er zijn. Zie de link naar de manpagina.
Reacties
- @don_crissti Ik ' zal nooit begrijpen waarom mensen geven de voorkeur aan willekeurige webdocumentatie boven de documentatie die op hun systemen is geïnstalleerd (wat het extra voordeel heeft dat het daadwerkelijk relevant is voor hun systeem).
- @Kusalananda – Wel, ik kan een scenario bedenken waarin mensen een link naar een webpagina in plaats van een citaat uit de documentatie die op hun systeem is geïnstalleerd: ze ' bevinden zich niet op een Linux-machine op het moment dat het bericht wordt geschreven … De link moet (imo) verwijzen naar de officiële documenten (vandaar mijn opmerking hierboven, die om een onbekende reden werd verwijderd door de mods …). Afgezien daarvan ben ik het volledig met u eens: het OP moet de handleidingpagina raadplegen die is geïnstalleerd op hun -systeem.
- @don_crissti Of ze bevinden zich op een server waarop geen manpages zijn geïnstalleerd, wat wel tamelijk frequent.
- Mijn man-pagina is echter meestal van FreeBSD. Tenzij ik toevallig een Linux VM binnen handbereik heb. En ik heb de indruk dat de meeste vragen op GNU / Linux gebaseerd zijn.
- Ik zou ook moeten toevoegen dat, naast overweldigende en vaak ondoorgrondelijke output van manpages voor relatief onervaren gebruikers, ik als programmeur / ervaren gebruiker ' m meestal op zoek naar nieuwe oplossingen die manpages niet ' dekken. Bijvoorbeeld (zojuist), specifieke datumnotatie voor ' zoek ' opdrachtuitvoer. De man-pagina ' vertelt je niet om "% T " voor elke variabele – althans niet dat ik daar zelfs specifiek naar op zoek was. Je zou de hele dag kunnen proberen om het uit te zoeken. (Of geef gewoon.) Terwijl een zoekopdracht op Stack Exchange dat antwoord zal opleveren, duidelijk uitgelegd, in het eerste resultaat.
Answer
Barrett 2012 zegt op pagina 74:
” -printf
string
print de gegeven string, waarop mogelijk vervangingen zijn toegepast op de manier van de C-bibliotheekfunctie printf()
. “
en beveelt natuurlijk de manpage voor de volledige lijst met opties. Terwijl zaken als find . -printf "%s %p\n"
worden uitgelegd, doen andere dat niet. @jim
heeft het gebruik van %T
genoemd. Ik gebruik persoonlijk een script met een regel die lijkt op find . -printf "%T@ %p\n"
zonder ooit te kunnen begrijpen wat dat %T@
is. Kan iemand verwijzen naar een verklarende bron voor deze opties die niet in de manpages staan?
Reacties
- Wie ' is deze Barrett-man?
- @Kusalananda, Daniel J. Barrett, auteur van " Linux Pocket Guide " , paginacitatie verwijst naar de tweede editie. Voordat u naar de bibliotheek rent, moet u erop wijzen dat de oplossing voor deze vraag daar niet te vinden is. Anders een zeer goede gids.
- Mogelijk ontbrak het in de loop van de dag in de manpage van find ' s. Je zou nu een invoer moeten zien specifiek voor% Tk, waar k dezelfde notatie is als gebruikt in% Ak.Waarin staat: @ = seconden sinds 1 januari 1970, 00:00 GMT, met fractioneel deel.
- @Nicholi | bedankt, dat is logisch. Tijden in andere formaten slagen er soms niet in om de zaken netjes te sorteren.