Linux Shell文件测试运算符

在Shell脚本中,文件测试运算符用于检查文件的各种属性,例如文件是否存在、是否可读/可写、是否是一个目录等等。下面是常用的文件测试运算符及其含义和示例:

-e file
检查文件是否存在
示例:if [ -e /etc/passwd ]; then echo “file exists”; fi

-f file
检查文件是否是一个普通文件
示例:if [ -f /etc/passwd ]; then echo “regular file”; fi

-d file
检查文件是否是一个目录
示例:if [ -d /etc ]; then echo “directory”; fi

-r file
检查文件是否可读
示例:if [ -r /etc/passwd ]; then echo “file is readable”; fi

-w file
检查文件是否可写
示例:if [ -w /etc/passwd ]; then echo “file is writable”; fi

-x file
检查文件是否可执行
示例:if [ -x /bin/bash ]; then echo “file is executable”; fi

-s file
检查文件是否非空
示例:if [ -s /etc/passwd ]; then echo “file is not empty”; fi

-L file
检查文件是否是一个符号链接
示例:if [ -L /usr/bin/python ]; then echo “symbolic link”; fi

-S file
检查文件是否是一个套接字文件
示例:if [ -S /var/run/mysqld/mysqld.sock ]; then echo “socket file”; fi

-p file
检查文件是否是一个命名管道文件
示例:if [ -p /tmp/myfifo ]; then echo “named pipe file”; fi

-b file
检查文件是否是一个块设备文件
示例:if [ -b /dev/sda ]; then echo “block device file”; fi

-c file
检查文件是否是一个字符设备文件
示例:if [ -c /dev/tty1 ]; then echo “character device file”; fi