Dateinamen, Dateiendung und Pfad trennen

  • Pfad ohne letzten Slash:  DIR="${i%/*}"
    alternativ:  DIR=`dirname "$i"`
  • Pfad mit Dateinamen ohne Endung:  xBASE="${i%.*}"
    alternativ:  xBASE=`echo "$i" | sed 's/\(.*\)\..*/\1/'`
  • Aktuellen Pfad durch . ersetzen:  [ "$DIR" == "$i" ] && DIR=.
  • Dateiname mit Endung: FILE="${i##*/}"
    alternativ: FILE=`basename "$i"`
  • Dateiendung: FILEEXT=${i##*.}
    alternativ:  FILEEXT=`echo "$i" | sed 's/.*\.\(.*\)/\1/'`
    Dateiendung in Großbuchstaben:  FILEEXT=`echo ${i##*.} | tr '[:lower:]' '[:upper:]'
  • Dateiname ohne Endung: FILEBASE=${FILE%.*}