检查文件是否在bash中的给定目录(或子目录)中

Lea*_*don 7 bash

如何检查给定文件是否在目录中,包括具有该目录的任何目录,等等?我想在 bash 脚本中进行一个小的完整性检查,以检查用户是否没有尝试更改项目目录之外的文件。

sam*_*hen 9

使用 find (它从 cwd 或在提供的目录路径中递归搜索):

find $directory_path -name $file_name | wc -l
Run Code Online (Sandbox Code Playgroud)

将此用作 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
...
Run Code Online (Sandbox Code Playgroud)