Saya menggunakan realpathperintah, tetapi selalu menambahkan input asli di akhir jalan:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Saya menggunakan realpathperintah, tetapi selalu menambahkan input asli di akhir jalan:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Jawaban:
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
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
realpath .