find コマンド構文の違い

find コマンド構文の違い

findコマンドを見ると、2つの違いが何であるか疑問に思います。

find -type f

そして

find ${1} -type f

それらはすべて同じ機能を果たしているようですが、その${1}目的は何ですか?

答え1

これは${1}findとは何の関係もなく、シェルパラメータです。

たとえば、2番目のfindコマンドがシェルスクリプト内で実行されると、次のようになりますtest.sh

#!/bin/bash
find ${1} -type f

その後、test.sh使用すると

./test.sh cica

その後、コマンドラインcicaのシェルに置き換えられます。findこのfindコマンドは

find cica -type f

cica..また実行されます(したがって、現在のディレクトリではなくディレクトリ内のファイルを探します)。

bashPs 私たち全員は、、、、lscpマニュアルを一生に一度は読まなければなりません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

関連情報