Adv Bash - 3
Operators: Files
Operator |
Tests Whether |
Operator |
Tests Whether |
-e |
File exists |
-s |
File is not zero size |
-f |
File is a regular file |
|
|
-d |
File is a directory |
-r |
File has read permission |
-h |
File is a symbolic link |
-w |
File has write permission |
-L |
File is a symbolic link |
-x |
File has execute permission |
-b |
File is a block device |
|
|
-c |
File is a character device |
-g |
sgid flag set |
-p |
File is a pipe |
-u |
suid flag set |
-S |
File is a socket |
-k |
“sticky bit” set |
-t |
File is associated with a terminal |
|
|
-N |
File modified since it was last read |
F1 -nt F2 |
File F1 is newer than F2 * |
-O |
You own the file |
F1 -ot F2 |
File F1 is older than F2 * |
-G |
Group id of file same as yours |
F1 -ef F2 |
Files F1 and F2 are hard links to the same file * |
! |
NOT (inverts sense of above tests) |
|
|
Sample
function is_symbolic_link(){
echo "Is the file $1 a symbolic link?";
if [ -f $1 ] && [ -h $1 ];
then
echo 'true' ;
else
echo 'false';
fi;
}
function is_file_empty () {
echo "Is the file $1 empty?";
if [ -f $1 ] && [ ! -s $1 ];
then
echo 'true' ;
else
echo 'false';
fi;
}