linux 确定目录中是否存在文件的最佳方法是什么?

kulphzqa  于 2023-08-03  发布在  Linux
关注(0)|答案(3)|浏览(130)

我正在寻找一种有效的方法来检查一个文件存在于一个目录。我在网上搜索的时候偶然发现了这行代码。看起来像是在主目录上运行测试。

if test -e $HOME$; then echo $HOME$; fi
done

字符串
如果test命令以home目录作为参数运行,这意味着什么?这是测试文件是否存在的有效方法吗?
我尝试执行代码,测试成功。但我不明白为什么测试成功了。

jdgnovmf

jdgnovmf1#

test是一个用于您的目的的命令,但是您使用的是Linux,并且确定文件是否存在的方法非常庞大(即使您可以为此开发特定的程序)。
来自男人:

TEST(1)                                                            User Commands                                                            TEST(1)

NAME
       test - check file types and compare values

SYNOPSIS
       test EXPRESSION
       test
       [ EXPRESSION ]
       [ ]
       [ OPTION
...
       -e FILE
              FILE exists
...

字符串
关于你的最后一个问题,测试将验证是否$HOME存在;如果存在,则打印$HOME

smtd7mpg

smtd7mpg2#

如果你知道你想要检查的文件,你可以像这样使用条件:

  • -e:检查文件是否存在
if [[ -e /path/to/file ]]
    then
      echo "exist"
    else
      echo "does not exist"
    fi

字符串
如果你只是想检查一个目录是否为空,你可以尝试:

  • -I:避免列出点
  • -n:检查$var是否为空
var=$(ls -a -I . -I .. /dir/)
    if [[ -n $var ]]
    then
      echo "dir is not empty"
    else
      echo "dir is empty"
    fi

vs91vp4v

vs91vp4v3#

FILE='some_file_to_check'
[ -f "${FILE}" ] && echo "File ${FILE} exists."

字符串
一行:

FILE='some_file_to_check'; [ -f "${FILE}" ] && echo "File ${FILE} exists."

相关问题