我正在尝试编写一个脚本,它将确定每个子目录是否存在.zip文件。例如,我正在工作的目录可能如下所示:
/folder1
/folder2
/folder3
folder1.zip
folder3.zip
然后脚本会意识到“FoLDR2”的“zip”不存在,然后做一些事情。
到目前为止,我已经提出了这个(下面)循环通过文件夹,但我现在陷入了试图将目录路径转换成包含文件名的变量的困境。然后,我可以运行一个if来查看是否存在.zip文件。
#!/bin/sh
for i in $(ls -d */);
do
filename= "$i" | rev | cut -c 2- | rev
filename="$filename.zip"
done
最佳答案
# No need to use ls
for dir in */
do
# ${var%pattern} removes trailing pattern from a variable
file="${dir%/}.zip"
if [ -e "$file" ]
then
echo "It exists"
else
echo "It's missing"
fi
done
这里不需要捕获命令输出,但您的行应该是:
# For future reference only
filename=$(echo "$i" | rev | cut -c 2- | rev)
关于linux - 检查是否存在与目录同名的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23731243/