How do I tell if a regular file does not exist in Bash?

后端 未结 20 2746
深忆病人
深忆病人 2020-11-22 10:57

I\'ve used the following script to see if a file exists:

#!/bin/bash

FILE=$1     
if [ -f $FILE ]; then
   echo \"File $FILE exists.\"
else
   echo \"File $         


        
20条回答
  •  旧巷少年郎
    2020-11-22 11:36

    Bash File Testing

    -b filename - Block special file
    -c filename - Special character file
    -d directoryname - Check for directory Existence
    -e filename - Check for file existence, regardless of type (node, directory, socket, etc.)
    -f filename - Check for regular file existence not a directory
    -G filename - Check if file exists and is owned by effective group ID
    -G filename set-group-id - True if file exists and is set-group-id
    -k filename - Sticky bit
    -L filename - Symbolic link
    -O filename - True if file exists and is owned by the effective user id
    -r filename - Check if file is a readable
    -S filename - Check if file is socket
    -s filename - Check if file is nonzero size
    -u filename - Check if file set-user-id bit is set
    -w filename - Check if file is writable
    -x filename - Check if file is executable

    How to use:

    #!/bin/bash
    file=./file
    if [ -e "$file" ]; then
        echo "File exists"
    else 
        echo "File does not exist"
    fi 
    

    A test expression can be negated by using the ! operator

    #!/bin/bash
    file=./file
    if [ ! -e "$file" ]; then
        echo "File does not exist"
    else 
        echo "File exists"
    fi 
    

提交回复
热议问题