Linux里面type命令作用是什么?

Linux里面type命令作用是什么?,第1张

Linux里的这个type命令是个极其冷僻的命令,极少被使用,已被废弃。

一般情况下,type命令被用于判断另外一个命令是否是内置命令,但是它实际上有更多的用法。

    1.判断一个名字当前是否是alias、keyword、function、builtin、file或者什么都不是:

          type ls 的输出是 ls 是 `ls --color=auto' 的别名

          type if 的输出是 if 是 shell 关键字

          type type 的输出是 type 是 shell 内嵌

          type frydsh 的输出是 bash: type: frydsh: 未找到

    2.判断一个名字当前是否是alias、keyword、function、builtin、file或者什么都不是的另一种方法(适用于脚本编程):

          type -t ls 的输出是 alias

          type -t if 的输出是 keyword

          type -t type 的输出是 builtin

          type -t gedit 的输出是 file

          type -t frydsh 没有输出

    3.显示一个名字的所有可能:

          type -a kill 的输出是 kill 是 shell 内嵌 和 kill 是 /bin/kill

          type -at kill 的输出是 builtin 和 file

    4.查看一个命令的执行路径(如果它是外部命令的话):

          type -p gedit 的输出是 /usr/bin/gedit

          type -p kill 没有输出(因为kill是内置命令)

    5.强制搜索外部命令:

          type -P kill 的输出是 /bin/kill

题主你好,

给题主举个例子吧,从例子中看起来更直观.

我在当前目录中新建了一个文件夹叫A,一个文件叫abcd, 又在A这个文件下新建了另一个abcd的文件夹,下面是目录结构:

此时我在当前目录下执行:   find ./ -name abcd,会将 abcd文件以及A目录下的abcd文件夹都打印出来:

但是,如果我加上了-type参数后,就能更精确的限制查找的内容了,也就是说之前只要名称对上就输出,现在不仅名称要对上, 文件类型也要对上,才会输出:

从上图可以看出,只有当前目录下的abcd这个文件被输出了,而A目录下的abcd文件夹则没有,因为我规定了,我通过-type f声明了,查找的是名为abcd的名件,而非名为abcd的文件夹.

反之:

可以看出,只有A目录下的abcd这个文件夹被输出了,而abcd文件没有被输出,因为我通过-type d明确的告诉了find: "看清楚了啊, 你找到的东西不仅名称是abcd,类型还必须是文件夹才给我输出"

-----

find命令的-type选项支持的参数:

-----

希望可以帮到题主,欢迎追问.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/6065947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存