Ich bin auf der Suche nach einer Möglichkeit zur Normalisierung beliebiger Dateipfade in Bash, Auflösung .
und ..
auf ihre absoluten Werte. Beispiele:Normalize beliebige Dateipfade in bash auf OSX
> cd /foo/bar
> normalize_path "."
/foo/bar
> normalize_path "../baz"
/foo/baz
> normalize_path "../../folder/that/doesnt/exist/"
/folder/that/doesnt/exist
Beachten Sie, wie in den obigen Beispielen, normalize_path
einen Wert zurückgibt auch wenn der Weg zu einem echten Ordner nicht entspricht oder Datei. Alle vorherigen Fragen über absolute oder normalisierte Pfade, die ich auf StackOverflow (example 1, example 2) gesehen habe, nehmen an, dass der Pfad auf eine reale Datei zeigt und realpath
oder pwd
zu normalisieren, aber das wird nicht für meinen Anwendungsfall funktionieren.
Mit anderen Worten, ich bin auf der Suche nach einer Bash-Funktion, die Pfade als Strings rein manipuliert und nicht tatsächlich auf das Dateisystem, ähnlich File.getCanonicalPath in Java.
Muss es ausschließlich in 'bash' sein oder könntest du' readlink -m your_imaginary_path_here' oder 'realpath -m your_imaginary_path_here' verwenden? – rickhg12hs
@ rickhg12hs: Ich bin auf der Suche nach etwas, das auf OS X läuft. –