find /tmp -printf "%s %p\n" |sort -n -r | head
To polecenie działa poprawnie, ale jakie są %s %p
opcje użyte tutaj? Czy są jakieś inne opcje, których można użyć?
Komentarze
- Spójrz na find ' s manpage.
- możliwy duplikat Gdzie znaleźć odniesienie do formatowania printf?
Odpowiedź
Jakie są tutaj użyte opcje% s% p?
Ze strony podręcznika :
% s Rozmiar pliku w bajtach.
% p Nazwa pliku.
Przewiń w dół na tej stronie poza zwykłe litery dla printf i przeczytaj części z prefiksem%.
% n Liczba twardych linków do pliku.
% p Plik” sname.
% P Nazwa pliku wraz z nazwą punktu początkowego, pod którym znaleziono usunięte.
% 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ć?
Są. Zobacz link do strony podręcznika.
Komentarze
- @don_crissti I ' nigdy nie zrozumiem, dlaczego ludzie wolą losową dokumentację internetową od dokumentacji zainstalowanej w ich systemach (co ma dodatkową zaletę w postaci faktycznego dopasowania do ich systemu).
- @Kusalananda – Cóż, przychodzi mi do głowy jeden scenariusz, w którym ludzie mogliby dołączyć odsyłacz do strony internetowej zamiast cytatu z dokumentacji zainstalowanej w ich systemie: ' nie są na komputerze z systemem Linux w momencie pisania postu … Jednak link powinien wskazywać (imo) na oficjalne dokumenty (stąd mój komentarz powyżej, który z jakiegoś nieznanego powodu został usunięty przez mody …). Poza tym w pełni się z tobą zgadzam: OP powinien zapoznać się ze stroną podręcznika zainstalowaną w ich systemie.
- @don_crissti Lub są na serwerze, na którym nie ma zainstalowanych stron podręcznika, raczej często.
- Moja strona podręcznika zazwyczaj pochodzi z FreeBSD. Chyba że mam maszynę wirtualną z systemem Linux w zasięgu. I mam wrażenie, że większość pytań dotyczy GNU / Linuksa.
- Powinienem również dodać, że oprócz przytłaczającego i często nieodgadnionego wyjścia stron podręcznika systemowego dla stosunkowo niedoświadczonych użytkowników, jako programista / zaawansowany użytkownik ja ' Zazwyczaj szukam nowatorskich rozwiązań, których ' nie obejmują strony podręcznika. Na przykład (przed chwilą) określony format daty dla wyników polecenia ' znajdź '. Strona podręcznika nie ' nie mówi, aby umieścić "% T " przed każdej zmiennej – przynajmniej nie, żebym nawet jej szukał. Możesz spędzić cały dzień, próbując to rozgryźć. (Lub po prostu daj.) Podczas gdy wyszukiwanie na Stack Exchange da tę, jasno wyjaśnioną odpowiedź w pierwszym wyniku.
Odpowiedź
Barrett 2012 mówi na stronie 74:
” -printf
string
wypisuje podany ciąg, który może mieć zastosowane do niego podstawienia na sposób funkcji biblioteki C printf()
. „
i oczywiście zaleca Strona podręcznika zawierająca pełną listę opcji. Podczas gdy rzeczy takie jak find . -printf "%s %p\n"
są wyjaśniane, inne nie. @jim
wspomniał o zastosowaniu %T
. Osobiście używam skryptu z linią podobną do find . -printf "%T@ %p\n"
, nigdy nie będąc w stanie zrozumieć, czym jest %T@
. Czy ktoś może odwołać się do źródła wyjaśniającego dla tych opcji, którego nie ma na stronach podręcznika?
Komentarze
- Kto ' czy to Barrett?
- @Kusalananda, Daniel J. Barrett, autor " Kieszonkowego przewodnika po Linuksie " , cytat na stronie odnosi się do drugiego wydania. Zanim pobiegniesz do biblioteki, pamiętaj, że nie ma tam rozwiązania tego problemu. W przeciwnym razie bardzo dobry przewodnik.
- Być może brakowało go kiedyś na stronie podręcznika find '. Powinieneś teraz zobaczyć wpis dotyczący% Tk, gdzie k jest tą samą notacją, która została użyta w% Ak.Który mówi: @ = sekundy od 1 stycznia 1970, 00:00 GMT, z częścią ułamkową.
- @Nicholi | dzięki, to ma sens. Czasy w innych formatach czasami nie pozwalają ładnie sortować rzeczy.