在这种情况下type
,它与内置的bash无关type
,但以后会更多。
关于“类型”的一些知识
BASH内置type
命令为您提供有关命令的信息。从而:
$ 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 shell中并键入time some_cmd
,time
则使用bash内置函数。要使用该系统,time
您可以做/usr/bin/time some_cmd
。
确保使用系统命令而非内置命令的一种常用方法是使用which
。
tt=$(which time)
然后用于$tt
调用system time
。
有问题的命令
在这种情况下,-type
是命令的选项find
。该选项采用一个参数,通过该参数指定实体的类型。例
find . -type f # File
find . -type d # Directory
还有更多,请检查man find
其余部分。
要搜索特定选项,您可以执行以下操作:
/ ^ \ s *-类型Enter
然后n
用于下一个,直到找到它。
关于shell命令的一些知识
这有点个人解释。
在这种特定情况下,值得一提的是命令,选项,参数和管道。
这在某种程度上是松散使用的,但是在我的词汇中,我们简短地说:
- 命令:程序或内置。
- 参数:命令字后的实体。
- option:一个可选参数。
- 参数:必填参数。
在命令规范中,方括号用于指定选项,并且可选地,小于/大于则用于指定参数。从而:
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
是否是正确的外观。如果您需要查看shell手册页等,例如:
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
获取您的答案。