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

  • 本文关键字:子目录 文件 是否 BASH bash
  • 更新时间 :
  • 英文 :


如何检查给定文件是否在目录中,包括该目录的任何目录,等等?我想在bash脚本中进行小型理智检查,以检查用户是否尝试更改项目目录之外的文件。

使用查找(它从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
...

查找如果找不到文件,请返回(即null String)。if [ '' ]将评估为false。

if [ $(find "$search_dir" -name "$filename") ]; then 
  echo "$filename is found in $search_dir"
else
  echo "$filename not found"
fi

find /path/to/dir -name "filename" | wc -l将为您提供/path/to/dir及其子dire的文件的次数。大于0的任何结果都表明该文件在正确的路径内。等于0的任何结果都意味着文件不在路径内或不存在。

相关内容

  • 没有找到相关文章

最新更新