Wyjaśnienie% dyrektyw w find -printf

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

To polecenie działa dobrze, ale jakie są %s %ptutaj używane opcje? Czy są jakieś inne opcje, których można użyć?

Piasek1512
źródło
4
Spójrz na stronę znaleziska.
Cyrus,

Odpowiedzi:

25

Jakie są tutaj użyte opcje% s% p?

Ze strony podręcznika :

% s Rozmiar pliku w bajtach.

% p Nazwa pliku.

Przewiń w dół tej strony poza wszystkie zwykłe litery dla printf i przeczytaj części, które są poprzedzone znakiem%.

% n Liczba twardych linków do pliku.

% p Nazwa pliku.

% P Nazwa pliku z nazwą punktu początkowego, w którym został znaleziony, został usunięty.

% s Rozmiar pliku w bajtach.

% t Czas ostatniej modyfikacji pliku w formacie zwróconym przez funkcję C `ctime '.

Czy są jakieś inne opcje, których można użyć?

Tam są. Zobacz link do strony podręcznika.

Hennes
źródło
@don_crissti Nigdy nie zrozumiem, dlaczego ludzie wolą losową dokumentację internetową od dokumentacji zainstalowanej w ich systemach (co ma tę dodatkową zaletę, że jest odpowiednie dla ich systemu).
Kusalananda
1
@Kusalananda - Cóż, mogę wymyślić jeden scenariusz, w którym ludzie zamieściliby link do strony internetowej zamiast cytatu z dokumentacji zainstalowanej w ich systemie: nie są na komputerze z linuksem w momencie pisania postu. .. Jednak link powinien wskazywać (imo) na oficjalne dokumenty (stąd mój komentarz powyżej, który z nieznanych przyczyn został usunięty przez mody ...). Poza tym w pełni się z tobą zgadzam: PO powinien zapoznać się ze stroną podręcznika zainstalowaną w ich systemie.
don_crissti
2
@don_crissti Lub są na serwerze, na którym nie ma zainstalowanych stron, co jest dość częste.
runlevel0
Jednak moja strona podręcznika pochodzi z FreeBSD. Chyba że mam maszynę wirtualną z systemem Linux w zasięgu ręki. Mam wrażenie, że większość pytań opiera się na GNU / Linux.
Hennes
3
Powinienem również dodać, że oprócz przytłaczającej i często nieprzeniknionej wydajności stron podręcznika dla stosunkowo niedoświadczonych użytkowników, jako programista / zaawansowany użytkownik zwykle szukam nowatorskich rozwiązań, których strony podręcznika nie obejmują. Na przykład (właśnie teraz) określony format daty dla polecenia wyjściowego „znajdź”. Strona podręcznika nie mówi ci, abyś wstawiał „% T” przed każdą zmienną - przynajmniej nie to, że nawet szukałem tego konkretnie. Możesz spędzić cały dzień próbując to rozgryźć. (Lub po prostu daj.) Podczas gdy wyszukiwanie na Stack Exchange da tę odpowiedź, jasno wyjaśnioną, w pierwszym wyniku.
Jim
0

Barrett 2012 mówi na stronie 74:

msgstr " -printfstring wydrukuj podany ciąg, do którego mogą być zastosowane podstawienia w sposób podobny do funkcji biblioteki C. printf()"

i zaleca oczywiście stronę podręczną, aby uzyskać pełną listę opcji. Podczas gdy rzeczy takie jak find . -printf '%s %p\n'wyjaśnienie, inni nie. @jimwspomniał o użyciu %T. Osobiście używam skryptu z linią podobną do, find . -printf '%T@ %p\n'ale nigdy nie jestem w stanie zrozumieć, co to %T@jest. Czy ktoś może odwołać się do źródła wyjaśniającego dla tych opcji, których nie ma na stronach podręcznika?

Choklo
źródło
1
Kim jest ten facet Barrett?
Kusalananda
@Kusalananda, Daniel J. Barrett, autor „Linux Pocket Guide”, cytat ze strony odnosi się do drugiego wydania. Zanim pobiegniesz do biblioteki, ostrzegaj, że nie znajdziesz tam rozwiązania tego problemu. W przeciwnym razie bardzo dobry przewodnik.
choklo