Symlinks adalah pintasan simpanan untuk jalur relatif:
~/foo➤ ln -s . ~/bar/foo
~/foo➤ ls -l ~/bar
total 8
lrwxr-xr-x 1 me me 1B 15 May 14:38 foo -> .
File ~/bar/foo
adalah symlink ke bar
direktori saat ini, yaitu direktori itu sendiri
Bagaimana jika saya ingin membuat symlink di direktori lain ke direktori saya saat itu? Jadi, dalam contoh di atas, saya masuk ~/foo
dan ingin saya buat ~/bar/foo
sebagai symlink ke ~/foo
. Tentu saja direktori saya saat ini mungkin sedikit lebih lama dari 5 karakter dan mungkin tidak mudah untuk diketik.
bash
symbolic-link
ln
Gareth
sumber
sumber
$
variabel Anda dan substitusi perintah, jika tidak, nama file dengan spasi akan menghentikan proses. Anda juga tidak memerlukan akhir$(basename $PWD)
(dan Anda lupa$
(dan mengutip :-))) karena itu adalah nama tautan default.pwd
pendekatan dan ada yang salah. Mari kita lakukan itu ke kesalahan ID-sepuluh-TBenar:
(mungkin bagus untuk umum dalam skrip) atau adil
Relatif:
Penyelesaian tab akan membantu Anda mengetik.
Dari komentar grawity dan http://lists.gnu.org/archive/html/coreutils-announce/2012-03/msg00000.html :
Jadi dengan versi ini:
harus bekerja (dengan dalam praktek identik contoh pertama Anda, dengan penambahan
--relative
switch).sumber
ln -s -r foo ~/bar
.$(readlink -f .)
atas$PWD
?readlink -f
kemudian akan symlink ke jalur target absolut dari direktori saat ini, sementara$PWD
symlink ke direktori literal saat ini masuk Apa yang diinginkan mungkin berbeda dari waktu ke waktu, dan pertama dan terutama mungkin bukan masalah sama sekali.