Bash 如何在包含文件和隐藏文件的目录中循环

Bash 如何在包含文件和隐藏文件的目录中循环,bash,for-loop,if-statement,arguments,Bash,For Loop,If Statement,Arguments,我试图比较一个给定的文件,并将其与一个目录的文件进行比较,以查看目录中是否有任何文件比给定的文件更新。我想浏览给定目录中的所有文件,包括隐藏文件。我不知道怎么做 我尝试过改变“直接”/;“指示”/。但它将只包含隐藏的文件,而不是给定目录中的所有其他文件 inputfile=$1 direct=$2 for file in "$direct"/*; do if [[ $file -nt $inputfile ]] then echo $(stat $file | grep Modify |

我试图比较一个给定的文件,并将其与一个目录的文件进行比较,以查看目录中是否有任何文件比给定的文件更新。我想浏览给定目录中的所有文件,包括隐藏文件。我不知道怎么做

我尝试过改变“直接”/;“指示”/。但它将只包含隐藏的文件,而不是给定目录中的所有其他文件

inputfile=$1 
direct=$2  
for file in "$direct"/*; do
if [[ $file -nt $inputfile ]] 
then
echo $(stat $file | grep Modify | cut -d' ' -f2,3) #formatting
fi
done

您可以使用
find
命令按照以下其他答案实现这一点:


1.使用
查找
代替*中的i的
,使用
-type f
-newer“$inputfile”
。记住
-maxdepth
。2.
stat
具有修改输出的选项
--printf
。仅用于打印修改日期,删除筛选。3.记住这一点,将
-exec stat
选项与
find
一起使用,并用一个命令替换整个脚本。
inputfile=$1 
direct=$2 
find $direct/ -type f ! -newer $inputfile