A file test operator is a unary operator that tests a filename or a filehandle.
Operator | Meaning |
---|---|
-r | File is readable by effective uid/gid. |
-w | File is writable by effective uid/gid. |
-x | File is executable by effective uid/gid. |
-o | File is owned by effective uid. |
-R | File is readable by real uid/gid. |
-W | File is writable by real uid/gid. |
-X | File is executable by real uid/gid. |
-O | File is owned by real uid. |
-e | File exists. |
-z | File has zero size. |
-s | File has non-zero size (returns size). |
-f | File is a plain file. |
-d | File is a directory. |
-l | File is a symbolic link. |
-p | File is a named pipe (FIFO). |
-S | File is a socket. |
-b | File is a block special file. |
-c | File is a character special file. |
-t | Filehandle is opened to a tty. |
-u | File has setuid bit set. |
-g | File has setgid bit set. |
-k | File has sticky bit set. |
-T | File is a text file. |
-B | File is a binary file (opposite of -T ). |
-M | Age of file (at startup) in days since modification. |
-A | Age of file (at startup) in days since last access. |
-C | Age of file (at startup) in days since inode change. |