我在使用此bash脚本代码的文件夹中循环浏览某些文件(所有以MOVIE开头的文件):
for i in MY-FOLDER/MOVIE*
do
当文件夹中有文件时,它可以正常工作。但是当没有任何内容时,它会以某种方式继续使用它认为名为MY-FOLDER / MOVIE *的文件。
如何在
之后避免输入内容do
如果文件夹中没有任何文件?
答案 0 :(得分:13)
使用nullglob
选项。
$ shopt -s nullglob
$ for i in zzz* ; do echo "$i" ; done
$
答案 1 :(得分:12)
for i in $(find MY-FOLDER/MOVIE -type f); do
echo $i
done
find
实用程序是瑞士军刀之一。它从您提供的目录开始,并根据您提供的选项查找所有子目录中的所有文件。
-type f
只会找到常规文件(而不是目录)。
正如我写的那样,该命令也会在子目录中找到文件;您可以通过添加-maxdepth 1
答案 2 :(得分:3)
for file in MY-FOLDER/MOVIE* do # Skip if not a file test -f "$file" || continue # Now you know it's a file. ... done