需要检查目录中是不是存在.gz文件[重复]

Posted

技术标签:

【中文标题】需要检查目录中是不是存在.gz文件[重复]【英文标题】:Need to check if .gz files exist in a directory [duplicate]需要检查目录中是否存在.gz文件[重复] 【发布时间】:2016-09-26 00:33:56 【问题描述】:

我的 shell 脚本中有一个提示,用户可以在其中选择一个目录。我正在尝试这样做,如果该目录中存在 .gz 文件,它们将退出循环,如果不存在,则再次要求用户选择一个目录,但它不起作用。到目前为止,这是我所拥有的:

ls -d */
while :
do
echo "Which Directory do you want to access?"
read input_variable1
cd $input_variable1
if [ CHECK FOR .gz ]
then
break
else
ls -d */
echo "no .gz files to unzip. Try again."
fi
done

【问题讨论】:

这不是重复!! 【参考方案1】:

测试支持使用通配符,因此如果有一个文件匹配*.gz[ -f *.gz ] 将为真(否则为假 - 正如@tripleee 指出的那样,这将因多个匹配而失败;请参阅下文以获得更好的变体)。

另一种可能性是使用if ls *.gz &>/dev/null; then ...; else ...; fi(不会抛出任何错误)。

【讨论】:

谢谢!帮了大忙 但是如果有多个匹配的文件,它会因为语法错误而失败。 @tripleee 没错,我已经更新了响应以包含一个不会失败的版本。 那里的命令替换是相当多余的。另见***.com/questions/6363441/…

以上是关于需要检查目录中是不是存在.gz文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查目录是不是存在和权限[重复]

检查目录或子目录中是不是存在文件[重复]

检查文件夹中是不是存在文件[重复]

如何检查批处理文件中是不是存在文件[重复]

Java中如何检查文件是不是存在于目录中

检查linux脚本中是不是存在文件[重复]