1

プロジェクトの再帰を伴う Linux ファイル検索を行う必要があります。私はこれを作るのを少し手伝ってもらったので、このコードの一部だけを完全には理解していません。誰かがそれが何を意味するのかを説明し、ユーザーにキーワードを入力させ、この関数がディレクトリでそのキーワードを検索する方法について少し助けてもらえますか? ありがとうございました

#!/bin/bash

lookIn() {
    echo $2
    for d in $(find $1 -type d)
    do
        if [ "$d" != "$1" ]
            echo "looking in $d"
            lookIn $d
        fi
    done
}

lookIn
4

3 に答える 3

2

TL;DR

再帰を使用しないでください。うまくいくかもしれませんが、必要以上に手間がかかります。Bash には末尾呼び出しの最適化がなく、関数型プログラミング言語ではありません。適切な引数セットでfindを使用するだけです。

Find を呼び出すパラメータ化された Bash 関数

find_name() {    
    starting_path="$1"
    filename="$2"
    find "$1" -name "$2" 2>&-
}

出力例

*特にや などのグロブ文字を使用する場合は、適切に引用符を付けてください?。例えば:

$ find_name /etc 'pass?d'
/etc/passwd
/etc/pam.d/passwd
于 2013-10-15T14:38:05.717 に答える