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

Dieser Befehl funktioniert einwandfrei, aber wie lautet die %s %p Optionen, die hier verwendet werden? Gibt es andere Optionen, die verwendet werden können?

Kommentare

Antwort

Welche% s% p-Optionen werden hier verwendet?

Von der Manpage :

% s Dateigröße in Bytes.

% p Name der Datei.

Scrollen Sie auf dieser Seite über alle regulären Buchstaben für nach unten printf und lies die Teile, denen ein% vorangestellt ist.

% n Anzahl der festen Links zur Datei.

% p Datei“ sname.

% P Name der Datei mit dem Namen des Startpunkts, unter dem sie sich befindet wurde entfernt gefunden.

% s Dateigröße in Bytes.

% t Die letzte Änderungszeit der Datei in dem von der Funktion C `ctime“ zurückgegebenen Format.

Gibt es andere Optionen, die verwendet werden können?

Es gibt. Siehe den Link zur Manpage.

Kommentare

  • @don_crissti Ich ' werde nie verstehen, warum Menschen Ziehen Sie eine zufällige Webdokumentation der auf ihren Systemen installierten Dokumentation vor (was den zusätzlichen Vorteil hat, dass sie tatsächlich für ihr System relevant ist).
  • @Kusalananda – Nun, ich kann mir ein Szenario vorstellen, in dem die Leute a einschließen würden Link zu einer Webseite anstelle eines Zitats aus der auf ihrem System installierten Dokumentation: ' befindet sich zum Zeitpunkt des Schreibens des Beitrags nicht auf einem Linux-Computer … Allerdings der Link sollte (imo) auf die offiziellen Dokumente verweisen (daher mein Kommentar oben, der aus einem unbekannten Grund von den Mods gelöscht wurde …). Abgesehen davon stimme ich Ihnen voll und ganz zu: Das OP sollte die auf seinem System installierte Handbuchseite konsultieren.
  • @don_crissti Oder sie befinden sich auf einem Server, auf dem keine Manpages installiert sind ziemlich häufig.
  • Meine Handbuchseite stammt jedoch in der Regel von FreeBSD. Es sei denn, ich habe zufällig eine Linux-VM in Reichweite. Und ich habe den Eindruck, dass die meisten Fragen auf GNU / Linux basieren.
  • Ich sollte hinzufügen, dass zusätzlich zu der überwältigenden und oft unergründlichen Ausgabe von Manpages für relativ unerfahrene Benutzer als Programmierer / Power-User I. ' Ich suche normalerweise nach neuartigen Lösungen, die auf Manpages nicht ' behandelt werden. Zum Beispiel (gerade jetzt), ein bestimmtes Datumsformat für ' findet ' Befehlsausgabe. Die Manpage ' fordert Sie nicht auf, "% T " vor zu setzen jede Variable – zumindest nicht, dass ich selbst danach gesucht hätte. Sie könnten den ganzen Tag damit verbringen, es herauszufinden. (Oder geben Sie einfach.) Während eine Suche in Stack Exchange diese Antwort liefert, die im ersten Ergebnis klar erklärt wird.

Antwort

Barrett 2012 sagt auf Seite 74:

-printf string druckt die angegebene Zeichenfolge aus, auf die möglicherweise Substitutionen in der Art der C-Bibliotheksfunktion printf() angewendet werden. „

und empfiehlt natürlich die Manpage für die vollständige Liste der Optionen. Während Dinge wie find . -printf "%s %p\n" erklärt werden, tun andere dies nicht. @jim hat die Verwendung von %T erwähnt. Ich persönlich verwende ein Skript mit einer Zeile ähnlich find . -printf "%T@ %p\n", ohne jemals verstehen zu können, was diese %T@ ist. Kann jemand auf eine erklärende Quelle für diese Optionen verweisen, die nicht in den Manpages enthalten sind?

Kommentare

  • Wer ' Ist das Barrett?
  • @Kusalananda, Daniel J. Barrett, Autor von " Linux Pocket Guide " , Seitenzitat bezieht sich auf die zweite Ausgabe. Bevor Sie zur Bibliothek laufen, sollten Sie gewarnt werden, dass die Lösung für diese Frage dort nicht zu finden ist. Ansonsten eine sehr gute Anleitung.
  • Möglicherweise fehlte früher in der Manpage von find '. Sie sollten jetzt einen Eintrag speziell für% Tk sehen, wobei k dieselbe Notation ist wie in% Ak.Darin heißt es: @ = Sekunden seit dem 1. Januar 1970, 00:00 GMT, mit Bruchteil.
  • @Nicholi | Danke, das macht Sinn. Zeiten in anderen Formaten können manchmal nicht gut sortiert werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.