7

特定のファイルがディレクトリ内にあるかどうかを確認するにはどうすればよいですか?そのディレクトリを持つディレクトリなどが含まれますか?bashスクリプトで小さな健全性チェックを実行して、ユーザーがプロジェクトディレクトリ外のファイルを変更しようとしていないことを確認したいと思います。

4

3 に答える 3

10

findを使用します(cwdから、または指定されたディレクトリパスで再帰的に検索します)。

find $directory_path -name $file_name | wc -l

これをbashスクリプトの一部として使用する例:

#!/bin/bash
...

directory_path=~/src/reviewboard/reviewboard
file_name=views.py

file_count=$(find $directory_path -name $file_name | wc -l)

if [[ $file_count -gt 0 ]]; then
    echo "Warning: $file_name found $file_count times in $directory_path!"
fi
...
于 2012-10-20T14:54:09.553 に答える
3

ファイルが見つからない場合、findは何も返しません(つまり、null文字列)。if [ '' ]FALSEと評価されます。

if [ $(find "$search_dir" -name "$filename") ]; then 
  echo "$filename is found in $search_dir"
else
  echo "$filename not found"
fi
于 2012-10-20T16:50:14.380 に答える
1

find /path/to/dir -name "filename" | wc -lファイルがその中に存在する回数/path/to/dirとそのサブディレクトリが表示されます。結果が0より大きい場合は、ファイルが正しいパス内にあることを示します。結果が0の場合は、ファイルがパス内にないか、存在しないことを意味します。

于 2012-10-20T14:54:35.857 に答える