Göreli olarak Linux'ta mutlak olmaya nasıl zorlanır?


1

Harici dosya konfigürasyonuna "dosya yolu" nu giriş parametresi olarak alan üçüncü bir yazılımım var Ne yazık ki, bu yazılım önceden tanımlanmış bazı yollarla verilen yolu birleştirir. Örneğin, 'data / images' parametresini bekliyor ve '/ Users / someuser / work / source / data / images' kullanacak. Mutlak bir yol belirtmek istiyorum ancak bu yazılıma '/ tmp / images' gibi bir şey vermek, varolmayan bir yolla sonuçlanacaktır '/ Users / someuser / work / source // tmp / images' kullanılmış :(. '..' ile birlikte kullanabileceğim yol numarası bu yüzden, yazılım somethingönceden tanımlanmış olanla birleştikten sonra mutlak yolla sonuçlanacak bir yazılım verebilirim . '..' kullanarak çalışır ancak yol yapılandırması statik ve önceden tanımlanmış olduğundan çok iyi bir çözüm değildir yol yazılımı kullanımı değişebilir.


Yanıtlar:


2

/Users/someuser/work/source/XXXLinux'ta istediğiniz yeri işaret etmek için sayısız imkan var :

  • Simgeler kullanın - gibi bir şey yapıyor:

    ln -s /wherever/you/want /Users/someuser/work/source/XXX
    

    yapacak /Users/someuser/work/source/XXXbir dizin olarak görünmesini. Bazı yazılımlar oraya seyahat ederse ve / veya oraya dosyalar yazarsa, sonuçta ortaya çıkarlar /wherever/you/want.

  • Başka bir dosya sistemini XXX, yani

    mount /dev/something /Users/someuser/work/source/XXX
    

    Bu yolla / dev / something cihazınızı, uygulamanın yazacağı dizine yerleştirirsiniz.

  • Bir "bağlama bağlama" yapın, yani başka bir dosya sisteminin (zaten monte edilmiş) bir bölümünü aşağıdakilere yeniden bağlayın XXX:

    mount -o bind /wherever/you/want /Users/someuser/work/source/XXX
    

    Bir sembolik bağlantıya çok benzer, ancak uygulamanın tespit etmesi çok zordur. Uygulama kolay bir şekilde hedef dizinin bir bağlantı olup olmadığını kontrol edebilir ve orada yazmayı reddederken bağlama bağlama yöntemi normal bir dizin sağlar, ancak içeriği

  • Unionfs veya aufs gibi unionfs benzeri bir dosya sistemi kullanın - bu yolla "birleştirebilirsiniz", yani aynı anda birkaç dosya sistemini tek bir dizine bağlayabilirsiniz (örn. XXX)

  • Gibi yöntemler, geçersiz LD_PRELOAD ve kütüphaneler ile bazı hileler oyna open(), fopen()vb - en belirgin biridir sigorta yani sen kontrol etmek isteyebilirsiniz, FUSE için Birlik benzeri dosya sistemlerini .


0

Eğer sembolik bir link varsa /Users/someuser/work/source/için /(kök)

work$ ln -s / source

Oradaki her yol kökten çıkarılacak:

/Users/someuser/work/source/tmp/images 

işaret edecek

/tmp/images

hangi tarafından kontrol edebilirsiniz

work$ ls source/tmp/images

Belki de ona şunun gibi bir şey rootdirdemelisin source.
üçlü

Daha önce de belirttiğim gibi, yol yazılımı kök olarak kullanmak dinamiktir, bu yüzden birbirine bağlamak zor olacaktır.
grigoryvp

Cevabımdan okuyabileceğiniz gibi , FS köküyle bağlantı kurarsak , hiçbir şey zor değildir. Lütfen cevabımı bir kez daha okuyun. mount --bindtabanlı çözümler benimki kadar esnek değil.
sanmai
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.