Datei und Pfad in Bash trennen?

Datei und Pfad in Bash trennen?

Wie kann ich die Pfad- und Dateielemente in einer Bash-Schleife wie dieser trennen?

for file in `find /my/path -name "*.ext"`
do
    #(path,onlyfile) = separate_path_and_file $file
    #dosomethingwith $onlyfile
done

Antwort1

Das geht nicht. Aber Sie können sie separat durchführen.

$ foo=/usr/local/bin/bar
$ echo "${foo##*/}"
bar
$ echo "${foo%/*}"
/usr/local/bin

Antwort2

ich würde vorschlagendirnameUndbasename:

für Datei in `find /my/path -name "*.ext"`
Tun
    Pfad="$(Verzeichnisname "$Datei")"
    onlyfile="$(Basisname "$file")"
    # ...
Erledigt

verwandte Informationen