Di bawah ini adalah kode saya untuk membuat symlink direktori:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
Saya sudah membuat direktori /etc/nginx
. Saya hanya ingin isi direktori sumber ( /usr/local/nginx/conf/
) berada di isi direktori target ( /etc/nginx
). Tetapi ketika saya menjalankan kode, /etc/nginx
berisi direktori yang disebut conf
, bukan isiconf
. Direktori itu berisi konten yang saya inginkan, tetapi di lokasi yang salah.
Mengapa ia meletakkan direktori di folder target, alih-alih hanya meletakkan konten direktori di folder target?
bind mount
fitur linux . contohJawaban:
Ini adalah perilaku
ln
jika argumen kedua adalah direktori. Ini menempatkan tautan ke arg pertama di dalamnya . Jika Anda ingin/etc/nginx
menjadi symlink, Anda harus menghapus direktori itu terlebih dahulu dan menjalankan perintah yang sama.sumber
Itulah yang
ln
didokumentasikan untuk dilakukan ketika target sudah ada dan merupakan direktori. Jika Anda ingin/etc/nginx
untuk menjadi symlink daripada mengandung symlink, Anda sebaiknya tidak membuat sebagai direktori pertama!sumber
Dalam skrip berguna sesuatu seperti ini:
itu mencegah sebelum membuat kembali symlink loop "buruk" setelah menjalankan kembali skrip
sumber