Saya ingin cara mudah untuk mendapatkan path lengkap ke file. Saat ini saya mengetik ini:
echo `pwd`/file.ext
Mencoba mempersingkat, saya membuat alias bash:
alias fp='echo `pwd`/'
Tetapi sekarang jika saya mengetik fp file.ext
, ada ruang yang muncul antara /
dan file.ext
.
Apakah perintah seperti itu sudah ada, dan saya melewatkannya? Jika tidak, bagaimana cara membuat alias atau fungsi di bash?
command-line
bash
Jens Erat
sumber
sumber
readlink -f
(ataurealpath
, yang merupakan utilitas lama disimpan untuk kompatibilitas) juga akan memperluas semua tautan simbolik, yang tidak selalu diinginkan.realpath
.Alih-alih
pwd
perintah, gunakanPWD
variabel (itu dalam POSIX juga):Jika Anda perlu mendukung Windows, mengenali jalur absolut akan lebih rumit karena setiap port alat unix memiliki aturan sendiri untuk menerjemahkan jalur file. Dengan Cygwin, gunakan
cygpath
utilitas.sumber
untuk menjawab pertanyaan Anda dengan apa yang Anda gunakan sekarang:
alias mengembang pada posisi di mana Anda mengetik sekarang. Anda mengetik:
ini menjadi
Anda bisa menggunakan fungsi untuk menghindari itu:
Anda dapat menggunakannya seperti biasa:
sumber
echo "`pwd`/$1"
*
dalam direktori yang berisi file lain).fp *
menghasilkan/tmp/4cc3ea0c1b34b
sejak itulah paramete pertama untuk fungsi tersebut. parameter lainnya adalah file lain dalam direktori. segera setelah saya memiliki file bernama ' ' fungsi masih berfungsi seperti yang diharapkan, memanggilnya dengan "*" atau * atau *Kamu bisa memakai:
sumber
apt-cache search realpath
untuk mengungkapkan bahwa paket-paket realpath coreutils dan plain ol ' keduanya mengandung itu. Anda kemudian dapat mengetik (atau ) untuk menginstalnya.sudo apt-get install realpath
coreutils
Dari /programming//a/3915420/5795941
Ini satu-satunya cara yang bisa saya terima. Tidak memperluas tautan seperti tautan langsung dan tautan baca dan merupakan cara klasik untuk melakukannya yang pernah saya lihat di mana-mana.
sumber