W tym przypadku typenie ma to nic wspólnego z wbudowanym bash type, ale o tym później.
Trochę o „typie”
Wbudowane typepolecenie BASH zapewnia informacje o poleceniach. A zatem:
$ type type
type is a shell builtin
Składnia jest następująca:
type [-tap] [name ...]
-t: wpisz tylko typ wydruku, jeśli znaleziono
-a: wydrukuj wszystkie wystąpienia polecenia, zarówno wbudowane, jak i inne.
-p: wydrukuj plik dyskowy, który zostałby wykonany przy wywołaniu polecenia lub nic.
Jeśli przyjrzymy się time, killa catjako przykład:
$ type time kill cat
time is a shell keyword
kill is a shell builtin
cat is /bin/cat
$ type -t time kill cat
keyword
builtin
file
$ type -a time kill cat
time is a shell keyword
time is /usr/bin/time
kill is a shell builtin
kill is /bin/kill
cat is /bin/cat
$ type -ta time kill cat
keyword
file
builtin
file
file
Teraz określ, że jeśli jesteś w powłoce Bash i time some_cmdpiszesz, timeużywane jest wbudowane bash . Aby skorzystać z systemu, timemożesz to zrobić /usr/bin/time some_cmd.
Jednym ze sposobów często używanych w celu zapewnienia, że system, a nie wbudowane polecenie, jest używany, jest użycie which.
tt=$(which time)
a następnie użyj $ttdo wywołania systemu time.
Polecenie, o którym mowa
W tym przypadku -typejest to opcja polecenia find. Opcja przyjmuje jeden argument, za pomocą którego określa się typ jednostki. Przykład
find . -type f # File
find . -type d # Directory
Jest więcej, sprawdź man findresztę.
Aby wyszukać konkretną opcję, którą możesz zrobić (będąc w człowieku):
/ ^ \ s * -typEnter
Następnie użyj przycisku ndo następnego, aż go znajdziesz.
Trochę o poleceniu powłoki
To trochę osobista interpretacja.
Niektóre z rzeczy, o których warto wspomnieć, w tym konkretnym przypadku, to polecenia, opcje, argumenty i potoki.
Jest to nieco luźno używane, ale w moim słowniku mamy w skrócie:
- polecenie: program lub wbudowany .
- parametr: jednostka po słowie polecenia.
- opcja: parametr opcjonalny .
- argument: wymagany parametr.
W specyfikacji polecenia nawiasy kwadratowe służą do określania opcji, a opcjonalnie mniej / więcej niż, służą do określania argumentów. A zatem:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Daje -a -bi -sjako opcjonalne parametry, a filewymagany jeden.
-tjest opcjonalny, ale jeśli jest określony, pobiera wymagany argument bar. Kropki oznaczają, że może zająć kilka plików.
Nie jest to dokładna specyfikacja i często manlub helpjest wymagana dla pewności.
Pozycjonowanie opcji argumentów i danych wejściowych często można pomieszać, ale ogólnie najlepiej jest stosować podejście oparte na pozycji, ponieważ niektóre systemy nie obsługują mieszanego pozycjonowania argumentów. Jako przykład:
chmod -R nick 722 foo
chmod nick 722 foo -R
Oba działają na niektórych systemach, podczas gdy ten drugi nie działa na innych.
W twoim dokładnym poleceniu wszystkie parametry należą find- więc jeśli zastanawiasz się nad właściwością, man findto jest właściwe miejsce do szukania. W przypadkach, w których musisz zajrzeć na strony podręcznika użytkownika w poszukiwaniu powłoki itp., Mogą to być np .:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
-execJest szczególna, gdzie -exec some_command {} \;są wszystkie parametry podane find, ale some_command {} \;część jest rozszerzona, w terminie finddo some_command string_of_found_entity.
Co więcej
- cytowanie
- ekspansja
- zastępowanie poleceń
- i wiele więcej
Może ci się to przydać .
typeWbudowanego polecenia nie jest używany przezfind.-typeOpcjafindrobi coś innego. Zobaczhelp typeiman finduzyskaj odpowiedzi.