【发布时间】:2021-04-06 07:41:56
【问题描述】:
我想编写一个 bash 脚本来判断是否存在多个文件。我的尝试如下:
#!/bin/bash
FILE=*.dat
for d in $(find ~/Desktop/Results/ -maxdepth 4 -type d)
do
echo $d
cd $d
if [ -f "$FILE" ]; then
echo "$FILE exists."
fi
cd ~/Desktop/Results
done
我现在的问题是,* 运算符不适用于 FILE 变量。您知道如何使所有现有的 *.dat 文件都像代码中所示那样回显吗?
【问题讨论】:
-
为什么不直接使用 find "~/Desktop/Results/$FILE" -maxdepth 4 -type d ?
-
@RamanSailopal 这不起作用,它说文件不存在......
-
尝试查找 "~/Desktop/Results" -maxdepth 4 -type d -name "$FIL"
-
您意识到
FILE的值在您的循环中不会改变,对吧? -
如果你想在目录树中列出所有扩展名为
.dat的文件......find ~/Desktop/Results -maxdepth 4 -name "*.dat"