看着 find 命令,我很好奇两者之间有什么区别:
find -type f
和
find ${1} -type f
它们似乎都执行相同的功能,那么它们的${1}
用途是什么?
答案1
这${1}
与find无关,它是一个shell参数。
例如,如果第二个 find 命令在 shell 脚本内运行,则如下所示test.sh
:
#!/bin/bash
find ${1} -type f
然后,如果你test.sh
用
./test.sh cica
然后cica
就会被 shell 替换到find
命令行中。该find
命令将看到一个
find cica -type f
..它也会运行(因此,它将在目录中查找文件cica
,而不是在当前目录中)。
bash
Ps 我们一生中都应该读一次、、ls
和cp
的手册strace
。
答案2
正如 @DopeGhoti 提到的,${1}(或 $1)是脚本或函数的第一个参数。
我怀疑您所质疑的代码是看起来像这样的函数的一部分:
#/bin/bash
function show {
find ${1} -type f -print
}
show #...find with current directory as starting point...
show mydir #...find using `mydir` as starting point...
也就是说,如果调用函数时不存在任何参数,则该函数${1}
为空并find -type f...
运行。
答案3
${1}
(或$1
) 是脚本或函数的第一个参数。您在问题中调用的命令可能在脚本中。举一个非常基本的例子:
#!/bin/bash
find "${1}" -type f
如果该文件保存为可执行文件seek.sh
,并且您运行了该命令./seek.sh /home
,则将执行的命令是find "/home" -type f
.