`[ -f ... ]` 是什么意思?

问题描述 投票:0回答:3

只是想知道下面的命令是做什么的,或者

-f
意味着什么

if [ -f ${PDFFOLDER}/*.pdf ]; then
  rm ${PDFFOLDER}/*.pdf
fi
shell unix
3个回答
4
投票

由于

[ ]
test
是同一个命令,所以
[ ]
中的表达式可以在
man test
中找到:

NAME
       test - check file types and compare values

SYNOPSIS
       test EXPRESSION
       test

       [ EXPRESSION ]
       [ ]
       [ OPTION

你还可以看到:

-f 文件

FILE 存在并且是一个常规文件

所以

if [ -f "$file" ]; then...
的意思是:如果文件
$file
存在并且是常规文件(即不是目录或设备文件),则执行任何操作。


0
投票

-f 检查给定参数是否是常规文件。检查http://tldp.org/LDP/abs/html/fto.html


0
投票

这是一个明显的例子:

[ -f file_path ] && echo "file exist" || echo "doesn't exist"
© www.soinside.com 2019 - 2024. All rights reserved.