Potrzebujesz pomocy, aby zrozumieć, jak działa to polecenie znajdowania

1

Jestem początkującym w systemie OS X i wierzę, że to polecenie utworzy listę wszystkich plików i podfolderów określonych folderów

find /Volumes/Documents/ -exec stat -f "%N %Sm" {} + >~/Desktop/test.txt

Nie wiem, jak wymyślić, co to właściwie robi.

użytkownik3171796
źródło
2
znajdź i statystyki są w człowieku - o co chodzi
Mark
Jestem prawie początkującym w linii poleceń OSX. Chciałbym wiedzieć, dlaczego jest tak skomponowany.
user3171796

Odpowiedzi:

2

Opublikowane polecenie składa się z dwóch części

  • find /Volumes/Documents/ -exec stat -f "%N %Sm" {} +
  • >~/Desktop/test.txt

Druga część jest łatwiejsza do wyjaśnienia, po prostu zapisuje wszystkie dane wyjściowe z pierwszej do pliku o nazwie test.txtprzechowywanego na pulpicie. Jeśli pominiesz tę część, wynik findzostanie zapisany bezpośrednio w oknie terminala.

Pierwsza część to właściwe findpolecenie. Wezwanie do findzasadniczo otrzymuje dwa rodzaje parametrów

  • jedna lub kilka ścieżek działających jako punkt początkowy wyszukiwania ( /Volumes/Documents/w twoim przypadku)
  • jedno lub kilka wyrażeń zwanych „poleceniami znajdowania”, które są stosowane do każdego znalezionego pliku / folderu

Wygląda na to prosta wersja, find /Volumes/Documents/ -printktóra po prostu drukuje każdy znaleziony plik / folder.

W twoim przykładzie część wyrażenia jest nieco bardziej rozbudowana:

  • -execuruchamia polecenie na wynikach find ( stat -f "%N %Sm"faktycznie)

  • stat podaje informacje o pliku.

  • -fOpcja dla wyświetlaczy stat informacji przy użyciu określonego formatu.

  • %N %Smjest formatem używanym przez -f.

    • % oznacza ciąg formatu.

    • N oznacza wydrukowanie nazwy pliku.

    • Sm oznacza wydrukowanie daty modyfikacji pliku.

  • {} + jest zastępowane przez jak najwięcej znalezionych plików / jak to możliwe w każdym wywołaniu do stat

Aby uzyskać więcej informacji na temat rozumienia poleceń, zobacz stronę podręcznika dla findi stat.

grg
źródło
Dziękuję bardzo za szczegółowe informacje. Doceniłbym to. Przykro mi, ale nie mam jeszcze wystarczającej reputacji, aby głosować.
user3171796