我正在尝试编写一个脚本,它将确定每个子目录是否存在.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/

10-09 08:42
查看更多