Home > Others > How to check if a directory exists in a shell script

How to check if a directory exists in a shell script

To check if a directory exists in a shell script you can use the following:
    if [ -d "$DIRECTORY" ]; then    # Control will enter here if $DIRECTORY exists.  fi
Or to check if a directory doesn’t exist:
    if [ ! -d "$DIRECTORY" ]; then    
        # Control will enter here if $DIRECTORY doesn't exist.  
    fi

subsequent commands may not work as intended if you do not take into account that a symbolic link to a directory will also pass this check. E.g. running this:
    ln -s "$ACTUAL_DIR" "$SYMLINK"  
    if [ -d "$SYMLINK" ]; then     
        rmdir "$SYMLINK"   
    fi
Will produce the error message:
    rmdir: failed to remove `symlink': Not a directory
So symbolic links may have to be treated differently, if subsequent commands expect directories:
    if [ -d "$LINK_OR_DIR" ]; then     
    if [ -L "$LINK_OR_DIR" ]; then      
        # It is a symlink!      
        # Symbolic link specific commands go here.      
        rm "$LINK_OR_DIR"    
    else      
        # It's a directory!      
        # Directory command goes here.      
        rmdir "$LINK_OR_DIR"    
    fi  
    fi
Advertisements
Categories: Others
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: