Sorunumu ekran görüntüleri aracılığıyla göstereyim. This is my first terminal. Bağlantıyı başka bir terminalden terminal2 olarak değiştirdim. Sorunum this ekran görüntüsünde vurgulanır. Bağlantıyı test2'ye değiştirdikten sonra ls
test1 klasörünün içeriğini döndürür.Lincon'da sembolik bağın değiştirilmesi
cevap
Sizi kafanıza sokan şey, pwd
yerleşkesinin aslında geçerli çalışma dizinini anlatmamasıdır - size şu anki çalışma dizinine alıştığınız yolu bildirir.
$ pwd -P
/home/darkknight/test1
gibi bir şey verecektir:
gerçek Geçerli çalışma dizini istiyorsanız
, sen-P
bayrağı gerekir.
Teşekkür ederim, pwd'nin -P seçeneği benim için yeni bilgilerdi. – shafeeq
readlink
ikinci çağrı Eğer kılavuz sayfasında readlink
açıklaması standart çıkışa
Görüntüleme değeri
[email protected]:~/test$ readlink \`pwd`/home/darkknight/test2`
olduğunu düşünüyorum yapmaz Yani
readlink
salt okunur bir işlemdir. Ayrıca,$?
değerini sıfırdan sonra sıfır değerine de sahip olacaksınız, bu,test2
bir sembolik bağlantı olmadığı için başarısız oldu.(-f kuvvet anlamına gelir)
ln -s -f
başka bir çağrı ile değiştirin ...Tüm dağıtımlar[email protected]:~$ ln -s -f test2 test
-f
onur böylece ilk sembolik kaldırmanız gerekebilir:[email protected]:~$ rm test; ln -s test1 test
Bazı biçimlendirme sorunları vardı. Lütfen soruyu bir kez daha gözden geçirin. – shafeeq
Teşekkür ederim, ama öncekini sildikten sonra sembolik bağlantıyı değiştirdim. ama sorun hala var. – shafeeq
Tüm kanıtlar, sembolik bağlantıyı değiştirmediğinizi gösterir. 1. kızarmada hala sorunuz, "readlink" in sembolünü değiştirdiğine inanıyor. Birden fazla terminal kullanmaya gerek yoktur. "readlink" işlevini, durumu daha net bir şekilde gösteren ls -l 'ile değiştirmenizi öneririm. –
Şimdi bağlantıyı başka bir terminalden değiştirerek değiştiriyorum: komut
ama yine de davranışları aynı. – shafeeq
Hayır öyle değil. 'cd testi' vermediniz ve bu nedenle 'test1' klasöründe sıkışıp kaldınız ve şu anda bu yıldız kapısından geçmediniz, bu ** şimdi ** 'readlink' komutu doğru olarak raporlandığında test2 'klasörüne yönlendirecektir. Lütfen cevabımı kabul etmeyi düşünün, bu benim müthiş yardımcı olur. –
Bu, – shafeeq
Açıkladığınız şey beklenen davranış. size cd test
zaman aslında test1
girmek olduğunu
$ mkdir test1
$ mkdir test2
$ touch test1/t1
$ touch test2/t2
$ ln -s test1 test
$ cd test
$ ls
t1
$ rm ../test
$ ln -s test2 ../test
$ readlink ../test
test2
$ ls
t1
$
Basitçe düşünün. Ardından, sembolik bağlantıyı test
neyi istediğiniz gibi değiştirebilir ve hatta silebilirsiniz - hala test1
. Elbette
$ pwd
test
$ readlink `pwd`
test2
$
,
readlink
döner
test2
, gider ve
test2
olarak değiştirildi
akım
test
linki okundu olarak. Ancak
test
içine zaman size
cd
de
, bağlantı test1
için oldu. Ve hala test1
dizinde bulunuyorsunuz. Elbette, şimdi test dizinine geçerseniz, test2
içinde olursunuz.
$ cd ../test
$ ls
t2
$
Netleştirmek için son bir şey. test
Dizini mevcut değil. Bu dizine giremez ve giremezsiniz. Ne zaman cd test
, test
sembolik bağlantıyı şu an için (burada test1
) işaret eder.
test1
dizini girdikten sonra, test
sembolik bağlantısını istediğiniz gibi değiştirebilirsiniz, yine de test1
içinde olacaksınız.
ama 'readlink 'komutu yeni dizini döndürür. Benim sorumda gösteriliyor. – shafeeq
- 1. Windows'ta sembolik bağlantı için hedef değiştirin
- 2. .htaccess veya sembolik bağlantı (sembolik bağlantı)
- 3. Sembolik bağlantılar içeren mod_xsendfile
- 4. Octave'ın sembolik paketinden
- 5. Sembolik Bağlama tarihleri kullanarak?
- 6. linux copy sembolik bağlantı
- 7. değiştirilmesi içeriği()
- 8. değiştirilmesi foreach
- 9. FUSE'de sembolik bağlantılar nasıl oluşturulur?
- 10. Sembolik bağları yok say .gitignore
- 11. android: sembolik bir bağlantı belirleme
- 12. Sembolik bağları Perl'de nasıl kopyalarım?
- 13. Pencerelerde depoya sembolik bağlantı ekleme
- 14. Python'da sembolik bir bağ kopyalanıyor
- 15. Sembolik bağlantı için kontrol edin
- 16. Ben karmaşık sembolik sistem tanımladığınız
- 17. Hakyll örnek sitesinin değiştirilmesi
- 18. Java'da bir ArrayList'in değiştirilmesi
- 19. Sürükleme: Verilerin değiştirilmesi
- 20. ko.observable değerinin değiştirilmesi
- 21. Dize dosyada değiştirilmesi Unix
- 22. Quartz.NET'de JobDataMap'in Değiştirilmesi
- 23. iPhone: CGImage'ın Değiştirilmesi CGImageAlphaInfo
- 24. Bir JMenuBar sınırının değiştirilmesi
- 25. HighCharts eksen başlığının değiştirilmesi
- 26. MahApps Metro Temasının Değiştirilmesi
- 27. İş parçacığı önceliğinin değiştirilmesi
- 28. SQLAlchemy: Ayrılmış nesnenin değiştirilmesi
- 29. Bir NSNumber değerinin değiştirilmesi
- 30. Yönlendirenin değerinin değiştirilmesi
Sorun yok. Beklenen davranış budur. –
Ancak, ls, test1'deki dosyaları döndürdükten sonra, bağlantıyı test2'ye değiştirdim. Bu davranış bekleniyor mu? – shafeeq
Bağlantıyı test2'ye değiştirdiğiniz komutu görmüyorum (ln -sf test2 testi gibi bir şey olurdu). "readlink" bağlantıları oluşturmuyor. – chthonicdaemon