В этом случае не type
имеет ничего общего со встроенным bash type
, но об этом позже.
Немного о "типе"
Встроенная type
команда BASH предоставляет вам информацию о командах. Таким образом:
$ type type
type is a shell builtin
Синтаксис:
type [-tap] [name ...]
-t
: печатать только тип, если найден
-a
: печатать все вхождения команды, как встроенные, так и другие.
-p
: распечатать файл на диске, который будет выполнен при вызове команды, или ничего.
Если мы посмотрим time
, kill
и cat
в качестве примера:
$ 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
Теперь это указывает, что если вы находитесь в оболочке Bash и вводите time some_cmd
, используется встроенная команда bash time
. Для использования системы time
вы можете сделать /usr/bin/time some_cmd
.
Одним из способов, который часто используется для обеспечения использования системной, а не встроенной команды, является использование which
.
tt=$(which time)
а затем использовать $tt
для вызова системы time
.
Команда, о которой идет речь
В этом случае -type
это опция команды find
. Опция принимает один аргумент, по которому указывается тип объекта. пример
find . -type f # File
find . -type d # Directory
Есть еще, проверьте man find
на остальное.
Для поиска конкретной опции вы можете сделать (пока в человеке):
/ ^ \ S * -типаEnter
Затем используйте n
для следующего, пока не найдете его.
Немного о командной оболочке
Это немного личной интерпретации.
В данном конкретном случае стоит упомянуть некоторые команды, опции, аргументы и каналы.
Это несколько свободно используется, но в моем словарном запасе мы имеем вкратце:
- Команда: программа или встроенная .
- параметр: сущность после командного слова.
- опция: необязательный параметр.
- Аргумент: обязательный параметр.
В спецификации команды квадратные скобки используются для указания параметров и, по выбору, меньше / больше, чем используются для указания аргументов. Таким образом:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Выдает -a
-b
и -s
как необязательные параметры, так и file
обязательный.
-t
необязательно, но если указано, принимает обязательный аргумент bar
. Точки показывают, что это может занять несколько файлов.
Это не точная спецификация, и часто man
или help
требуется, чтобы быть уверенным.
Позиционирование параметров аргументов и ввод часто могут быть смешаны, но обычно лучше придерживаться позиционного подхода, поскольку некоторые системы не обрабатывают смешанное позиционирование аргументов. В качестве примера:
chmod -R nick 722 foo
chmod nick 722 foo -R
Оба работают на некоторых системах, в то время как последние не работают на других.
В вашей точной команде все параметры принадлежат find
- таким образом, если вам интересно, какое свойство man find
является правильным местом для поиска. В тех случаях, когда вам нужно просмотреть справочные страницы по оболочке и т. Д., Например:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
-exec
Является особенным , где -exec some_command {} \;
все параметры , данные find
, но some_command {} \;
часть расширена, в пределах find
до some_command string_of_found_entity
.
Далее
- квотирование
- расширение
- подстановка команд
- и многое другое
Вы можете найти это полезным .
type
Команда встроенный не используетсяfind
.-type
Вариантfind
делает что - то еще. Смотритеhelp type
иman find
получите ваши ответы.