检查隐藏文件(.file)是否存在

检查隐藏文件(.file)是否存在

使用if [ -f "file" ]适用于非隐藏文件。
我尝试将其用于隐藏文件:if [ -f ".file" ]当然它返回 false(即使.file存在)。

如果我使用if [ -f -a "file" ]它返回 true全部隐藏文件(即,如果“任何”文件被隐藏)。

我如何检查是否.someFile存在(其中“someFile”是隐藏文件)?

答案1

好的,找到了(只是尝试了一下)。需要使用-a而不是-f
if [ -a ".file" ]

-编辑-

遵循以下建议赛勒斯$ help test将列出所有测试选项。具体来说:
-a FILE 如果文件存在则为真。
-f FILE 如果文件存在并且是常规文件则为真。

答案2

使用 -e 对我有用:

if [ -e ${file} ]; then
   echo "${file} exists even if it's hidden"
fi

答案3

对于寻找隐藏目录检查解决方案的人来说,这对我有用:

HIDDEN_DIR=$(ls -a /dir_path | grep '.dir_name')
if [[ $HIDDEN_DIR == ".dir_name" ]]; then
  echo "hidden dir exists"
fi

相关内容