Difference between revisions of "File attributes comparisons"

From Linux Shell Scripting Tutorial - A Beginner's handbook
Jump to navigation Jump to search
Line 1: Line 1:
Use the following file comparisons to test various file attributes. You can use the [[test command]] or [[Conditional expression|conditional expression using []]  
+
Use the following file comparisons to test various file attributes. You can use the [[test command]] or [[Conditional expression|conditional expression using []].
 +
==-a file==
 +
True if file exists.
 +
==-b file==
 +
True if file exists and is a block special file.
 +
==-c file==
 +
True if file exists and is a character special file.
 +
==-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.
 
[[Category:Conditional Execution]]
 
[[Category:Conditional Execution]]

Revision as of 11:42, 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.

-b file

True if file exists and is a block special file.

-c file

True if file exists and is a character special file.

-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.