首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查文件名中是否存在包含空格的文件

检查文件名中是否存在包含空格的文件
EN

Stack Overflow用户
提问于 2017-12-13 15:55:32
回答 0查看 7.6K关注 0票数 6

我正在Bash中测试一个文件是否存在,其中文件名使用$(printf '%q' "$FNAME")进行转义。

使用if [ -f $FNAME ]总是会产生错误,如下面注释的示例所示。如何测试包含空格和其他字符的文件名?

代码语言:javascript
复制
#!/usr/bin/env bash

# code used in Raspberry Pi Podcasting Jukebox project
# youtube-dl -f 17 --get-filename https://www.youtube.com/watch?v=AgkM5g_Ob-w
# returns "HOW ABUNDANCE WILL CHANGE THE WORLD - Elon Musk 2017-AgkM5g_Ob-w.3gp"

# Purpose: To test if file exists before downloading
# for testing purposes using an existing regular file "abc def ghi"
AFILE="abc def ghi"
TFILE=$(printf '%q' "$AFILE") # Escaping filename using printf
echo $TFILE # returns abc\ def\ ghi
# if [ -f $AFILE ] # this test returns false every time with error [:too many arguments

if [ -f $TFILE ] # This test also returns FALSE with err [: too many arguments
then
  echo "Existing"
  # don't download
else
  echo "Not existing"
  # youtube-dl http://www.youtube.com/watch?v=AgkM5g_Ob-w
fi
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47788046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档