L'output di Realpath include l'input


9

Uso il realpathcomando, ma aggiunge sempre l'input originale alla fine del percorso:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl

Stai chiedendo una directory all'interno della tua directory di lavoro corrente. Prova invece:realpath .
penguin359,

Risposte:


17

Hai fornito realpathun percorso relativo a un file nella directory corrente.

Il file (che può essere una directory) può o non può esistere. realpathnon importa per impostazione predefinita. Riporta il percorso indipendentemente dal fatto che esista l'ultimo elemento.

Se vuoi che riporti solo i percorsi esistenti, usa il -eflag:

zanna@toaster:~/playground$ realpath playground
/home/zanna/playground/playground
zanna@toaster:~/playground$ realpath ~/playground
/home/zanna/playground
zanna@toaster:~/playground$ realpath -e playground
realpath: playground: No such file or directory

12

Questo perché gli stai dando un percorso che non esiste, quindi stampa semplicemente la directory corrente e qualunque cosa tu gli abbia dato, supponendo che sarebbe il percorso. Si noti che la pagina man specifica che:

Stampa il nome file assoluto risolto; tutti tranne l'ultimo componente devono esistere

Quindi consente l'esecuzione con un target inesistente. Per illustrare, considera questi esempi:

$ pwd
/home
$ ls
lost+found  terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir

Oppure, per duplicare ciò che hai fatto:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon

5

No, ti dice solo che il percorso del file (probabilmente inesistente) yosefklsituato nella directory corrente ( /homes/yosefkl) è /homes/yosefkl/yosefkl. Provare

realpath "$PWD"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.