一般的普通文件的判断条件是 -f。但对于设备节点等特殊文件那就不行了。必须使用与文件类型或者说设备类型相对应的判断条件才可以。
* -b file = True if the file exists and is block special file.块设备文件存在
* -c file = True if the file exists and is character special file.字符设备文件存在
* -d file = True if the file exists and is a directory.目录文件存在
* -e file = True if the file exists.文件存在
* -f file = True if the file exists and is a regular file普通文件存在
* -g file = True if the file exists and the set-group-id bit is set.文件存在且设置了组标记位
* -k file = True if the files' "sticky" bit is set.
* -L file = True if the file exists and is a symbolic link.文件存在且是个符号文件
* -p file = True if the file exists and is a named pipe.文件存在且是一个命名管道
* -r file = True if the file exists and is readable.文件存在且是可读的
* -s file = True if the file exists and its size is greater than zero.文件存在
参照上面的说明,我们要判断一个文件存在而不管其类型,那么可以使用 -e,如果要同时检查其类型,那么我们可以使用相对应的判断条件。