Bir bağlantının yönü


7
touch a
ln -s a b

Yukarıdaki komut "b" den başlayan ve "a" 'ya işaret eden sembolik bir link oluşturur:

lrwxrwxrwx  1 root root     1 Dec 20 23:41 b -> a

Asıl soru, bu doğru nasıl söylenir? Eğer doğru ise, o zaman neden ters yön yani, "b" kaynak ve "a" hedef. Ve hangi varlık sembolik bağın kendisidir?

Yanıtlar:


10

Sözdizimi lnbu paraleldir cpve mv.

cp a b

dosya biçeriğini içeren bir dosya oluşturur a.

ln –s a b

bişaret eden a(yani içeriğine erişim sağlar) denilen sembolik bir bağlantı oluşturur a. Benzer şekilde,

ln a b

bdosyaya atıfta bulunan a (sembolik bağlantının aksine, önceden var olması gereken ) bir sabit bağlantı (yeni bir dizin girişi) oluşturur . Her durumda, ilk argüman (verilerin) kaynağıdır ve ikinci argüman komutun yarattığı şeydir.


1
Teşekkür ederim. Başlangıçta içerik hakkında değil, işaret ettiği yeri düşündüm: ln -s a <-b. Bu yüzden “ters” olarak adlandırdım. Ama şimdi anlıyorum.
dash17291

Sabit linkler hakkında konuşurken dikkat edin. Bir sembolik bağlantı özel bir dosya tipidir, bu nedenle bir kaynak ve bir hedef vardır. Bir hardlink bir dosya için sadece ikinci bir isimdir. İki sabit bağlantı eşdeğerdir. İkinci sabit link, bir a'yı değil, bir atıfta bulunduğu aynı veriyi ifade eder. a verilere, b ise verilere karşılık gelir. Yön yok.
Rich Homolka

3
@Rich: Tamam, söylemeliydim, “ badından da başvurulan bir dosyaya (dizin girişi) atıfta bulunulan zor bir bağlantı (yeni bir dizin girişi) oluşturur a”.
Scott

Hayatım boyunca, dosyaların hangi sıraya girdiğini asla hatırlayamadım. Cp ya da mv gibi düşünmek hiç aklıma gelmedi.
Pak

GNU , kopyalamak yerine sembolik bağlantılar oluşturmak cpzorundadır -s(ve aynı şekilde -lsabit bağlantılar için).
deltab

0

Sadece ls -lbağlantıyı ters modda gösterdiğini unutmayın.

Bir bağlantının nerede olduğunu bilmek için şunları yapabilirsiniz:

$ file b
b: symbolic link to `a'

0

dash, çıktıyı yanlış yorumluyorsun.

Ls'nin çıktısında, oku ve yönünü "işaret" olarak düşünün.

A noktasındaki b noktalarını okuyun. Sembolik bağlantıyı b yapar. Kolay, gerçekten.


TAMAM. İnsana göre ilk parametre hedef, ikincisi ise oluşturulacak bağlantı ismidir. Hedefi "cp <source> <dest> 'i kullanırken olduğu gibi" kaynak "olarak yorumladım, çünkü işlemden önce olması gereken (cp'nin veya rsync'in örneğinde) olduğunu düşünüyorum ve ilk önce bunu belirledik .
dash17291

Bu ise , bir kopyalama işleminin benzer kaynak, ben bağlantı ona işaret eder çünkü bu bir "hedef" olarak adlandırılan varsayalım. Zaten bana mantıklı geliyor. Hala yanlış çıktısını yorumladığını düşünüyorum.
tink
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.