Output realpath termasuk input

9

Saya menggunakan realpathperintah, tetapi selalu menambahkan input asli di akhir jalan:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Josef Klimuk
sumber
Anda meminta direktori di dalam direktori kerja Anda saat ini. Coba ini sebagai gantinya:realpath .
penguin359

Jawaban:

17

Anda memberi realpathjalur relatif, ke file di direktori saat ini.

File (yang mungkin direktori) mungkin ada atau tidak ada. realpathtidak peduli secara default. Ini melaporkan jalan terlepas dari apakah elemen terakhirnya ada.

Jika Anda hanya ingin melaporkan jalur yang ada, gunakan -ebendera:

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
Zanna
sumber
12

Itu karena Anda memberinya jalan yang tidak ada, sehingga hanya mencetak direktori saat ini dan apa pun yang Anda berikan, dengan asumsi itu akan menjadi jalan. Perhatikan bahwa halaman manual menetapkan bahwa:

Cetak nama file absolut yang diselesaikan; semua kecuali komponen terakhir harus ada

Jadi itu memungkinkan eksekusi dengan target yang tidak ada. Untuk menggambarkan, pertimbangkan contoh-contoh ini:

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

Atau, untuk menduplikasi apa yang Anda lakukan:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
terdon
sumber
5

Tidak, ini hanya memberi tahu Anda bahwa path ke file (mungkin tidak ada) yang yosefklterletak di direktori saat ini ( /homes/yosefkl) adalah /homes/yosefkl/yosefkl. Mencoba

realpath "$PWD"
choroba
sumber