Difference between revisions of "File attributes comparisons"
Line 13: | Line 13: | ||
==-c file== | ==-c file== | ||
− | True if file exists and is a character special file. | + | True if file exists and is a [[character special file]]. |
+ | ===Example=== | ||
+ | <source lang="bash">[ -c /dev/tty0 ] && echo "Character special file found." || echo "Character special file not found."</source> | ||
+ | |||
==-d dir== | ==-d dir== | ||
True if file exists and is a directory. | True if file exists and is a directory. |
Revision as of 11:47, 5 September 2009
Use the following file comparisons to test various file attributes. You can use the test command or conditional expression using [.
-a file
True if file exists.
Example
[ -a /etc/resolv.conf ] && echo "File found" || echo "Not found"
-b file
True if file exists and is a block special file.
Example
[ -b /dev/zero ] && echo "block special file found" || echo "block special file not found"
OR
[ -b /dev/sda ] && echo "block special file found" || echo "block special file not found"
-c file
True if file exists and is a character special file.
Example
[ -c /dev/tty0 ] && echo "Character special file found." || echo "Character special file not found."
-d dir
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
-g file
True if file exists and is set-group-id.
-h file
True if file exists and is a symbolic link.
-k file
True if file exists and its ‘‘sticky’’ bit is set.
-p file
True if file exists and is a named pipe (FIFO).
-r file
True if file exists and is readable.
-s file
True if file exists and has a size greater than zero.
-t fd
True if file descriptor fd is open and refers to a terminal. -u file== True if file exists and its set-user-id bit is set.
-w file
True if file exists and is writable.
-x file
True if file exists and is executable.
-O file
True if file exists and is owned by the effective user id.
-G file
True if file exists and is owned by the effective group id.
-L file
True if file exists and is a symbolic link.
-S file
True if file exists and is a socket.
-N file
True if file exists and has been modified since it was last read.