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

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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *