Sto cercando un modo per normalizzare i percorsi di file arbitrari in bash, risolvendo .
e ..
ai loro valori assoluti. Esempi:Normalizza percorsi file arbitrari in bash su OSX
> cd /foo/bar
> normalize_path "."
/foo/bar
> normalize_path "../baz"
/foo/baz
> normalize_path "../../folder/that/doesnt/exist/"
/folder/that/doesnt/exist
notare come negli esempi precedenti, normalize_path
restituisce un valore anche se il percorso non corrisponde a una cartella o un file vero e proprio. Tutte le domande precedenti sui percorsi assoluti o normalizzati che ho visto su StackOverflow (example 1, example 2) presuppongono che il percorso punti a un file reale e utilizzino realpath
o pwd
per normalizzarlo, ma ciò non funzionerà per il mio caso d'uso.
In altre parole, sto cercando una funzione di bash che manipoli puramente i percorsi come stringhe e in realtà non guardi il file system, simile a File.getCanonicalPath in Java.
Deve essere solo in 'bash' oppure si può usare' readlink -m your_imaginary_path_here' o 'realpath -m your_imaginary_path_here'? – rickhg12hs
@ rickhg12hs: Sto cercando qualcosa che gira su OS X. –