Dinamik Semboller


10

Uygulamamı farklı mimariler için oluşturdum ve bir değişkene göre beni doğru sürüme götüren bir "dinamik symlink" oluşturmak istiyorum.

Şu anda oturum açmış olduğum makine x86 ise, sembolik bağlantı beni bu yapıya götürmelidir.

Bir alay örnek yapmak istediğim şeyin:

$ uname -i
x86_64

$ ls -ltr 
lrwxr-xr-x  1 dogbane gg     4 Feb 16 15:40 mylink -> @sys/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 x86_64/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 i386/

$ cd mylink

$ pwd -P
~/x86_64

Mümkün mü?

Kullanabileceğimi biliyorum cd $(uname -i), ama daha basit bir şey istiyorum.


OpenAFS hakkında bilgi sahibi misiniz? Çünkü 'sys' kullanarak bile @ sys'i tam olarak kullanır. Öyleyse, OpenAFS'ye bir alternatif mi arıyorsunuz?
jsbillings

@jsbilling Bunun standart bir dosya sisteminde AFS olmadan mümkün olup olmadığını bilmek istiyorum. Uzun zaman önce AFS üzerinde çalışıyordum ve bunu yapabilirdim, bu yüzden neden sordum.
dogbane

Ben de düşündüm. NetBSD'nin vfs.generic.magiclinks ayarı dışında 'sihirli' simgeleri olan başka bir dosya sistemi bilmiyorum. ( daemon-systems.org/man/symlink.7.html )
jsbillings

Bir şeyleri test ederken hangi sürümü kullanacağınızı seçebilmeniz için Ruby ve Perl gibi ortamlar vardır. Rvm.io/rubies adresinden ilham alabilirsiniz .
Jenny D

Yanıtlar:



2

Sembolik bağlantılar statiktir: dosya sistemi sadece bir dize saklar ve sembolik bağlantıya erişim adı (sembolik bağın konumuna göre) o dize olan dosyaya yönlendirilir.

Böyle dinamik sembolikleri açığa çıkaran bir FUSE dosya sistemi yazmak basit olurdu , ancak mevcut olanı bilmiyorum.


2

Bu ikili olduğunu varsayalım, bu yüzden symlink daha PATH değişken rater ile yapardı.

PATH=$PATH:/base/$ARCH/bin.

Eğer cfengine veya kukla gibi bir araç kullanıyorsanız. Sistem mimarisine bağlı olarak uygun dizine bir sembolik bağlantı oluşturulabilir.


1

Yalnızca şundan daha basit bir sözdizimi yazmak istiyorsanız:

cd $(uname -i)

Aşağıdaki gibi bir değişkene koyabilirsiniz:

 s=`uname -i` 

giriş betiğinizde,

 cd $s

CD istediğinde


0

symlink aslında bazı yol içeren özel bayraklı bir dosyadır ve bu yol olduğu gibi yorumlanır, böylece bir symlink'i diğer konumlara bu şekilde işaret edecek şekilde yapamazsınız. Ancak yine de uygun derleme çalıştıracak bir komut dosyası yazabilirsiniz.

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.