Bash脚本,循环浏览文件夹中的文件失败

我正在用这个bash脚本代码在一个文件夹中遍历某些文件(所有以MOVIE开头的文件):

for i in MY-FOLDER/MOVIE*
do

当文件夹中有文件时工作正常。 但是,如果没有,它会以某种方式继续进行,它认为它被命名为MY-FOLDER / MOVIE *。

我怎样才能避免它进入后的东西

do

如果文件夹中没有任何文件?


for i in $(find MY-FOLDER/MOVIE -type f); do
  echo $i
done

find工具是Linux的瑞士军刀之一。 根据您提供的选项,它从您提供的目录开始,并找到所有子目录中的所有文件。

-type f只会找到常规文件(不是目录)。

就像我写的那样,该命令也会在子目录中找到文件; 你可以通过添加-maxdepth 1来防止这种情况


使用nullglob选项。

$ shopt -s nullglob
$ for i in zzz* ; do echo "$i" ; done
$ 

for file in MY-FOLDER/MOVIE*
do
  # Skip if not a file
  test -f "$file" || continue
  # Now you know it's a file.
  ...
done
链接地址: http://www.djcxy.com/p/17487.html

上一篇: Bash scripting, loop through files in folder fails

下一篇: Test whether a directory exists inside a makefile