使用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