Linux, bir bağlama noktasındaki varolan dosyalarla ne yapar?


52

İçinde zaten dosyaları olan bir klasörü bağlamaya çalışırsam, linux bana bir hata mesajı veriyor mu yoksa devam edip bağlı dosya sistemini ve klasörde bulunan dosyaları gösteriyor mu?


2
Her zaman bazı test dosyalarıyla deneyebilir miyiz?
Chris,

Yapabilirsem yapardım. Sadece test edebileceğim bir şey olmadığıma karar verdi. Söz konusu sürücünün sökülüp takılmasını denedim, ancak her ikisi de aynı dosyalara sahip oldukları için sonuçlar yetersizdi.
İnce

Dosyaları orada bulunamayacak şekilde, klasörü istenmeyen hale getirmenin bir yolu var mı?
endolith

Yanıtlar:


33

Sadece monte edilir ve dosyalar klasöre gelindiğinde geri gelir.


1
Ortadan kaybolarak ne demek istiyorsun? Sunucuda var olmaya devam ediyorlar ve gösterilmiyorlar mı yoksa silinmişler mi?
İnce

Çabucak kontrol edeceğim, ama silindiklerini düşünüyorum.
Azz

17
+1 Dizin üzerlerine "monte edilmişken" dosyalar görünmezdir. Asla gerçekten uzağa gitmiyorlar, sadece erişilemez ...
sleske

10
Bir yığın gibi çalışır, başka bir şey monte ederseniz, önceki içeriği gizler. Ayırdığınızda, önceki şeyler tekrar görünür hale gelir.
09'da

4
"Klasör sökülürken geri dönme" diyen birinin 3 dakika sonra "Sanırım silinmiş" diyebildiğine şaşırdım. Neyse ki herkes için, eski burada gerçek.
underscore_d

111

Bir dizine bir dosya sistemi bağladığınızda, /mount-pointartık /mount-pointdoğrudan altındaki dosyalara erişemezsiniz . Hala varlar, ancak /mount-pointşimdi monte edilmiş dosya sisteminin köküdür, bağlama noktası görevi gören dizine değil, bu nedenle bu dizinin içeriğine en azından bu şekilde erişilemiyor. Örneğin:

# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory

Monte edilmiş dosya sistemi ve zaten mevcut olan verinin birleştirilmiş bir görüntüsünü elde etmenin yolları vardır, ancak bir birleşim dosya sistemi adı verilen fazladan bir katmana ihtiyacınız vardır .

Linux altında, gizli dosyaları görmenin bir yolu vardır. Bağlantı mount --bindnoktasının bulunduğu dosya sisteminin başka bir görünümünü elde etmek için kullanabilirsiniz . Örneğin

mount --bind / /other-root-view

Tüm dosyaları altındaki kök dosya sisteminde göreceksiniz /other-root-view.

# cat /other-root-view/etc/hostname 
darkstar

Özellikle /mount-pointşu anda erişilebilir olacak /other-root-view/mount-pointve /other-root-view/mount-pointbir bağlantı noktası olmadığından içeriğini burada görebilirsiniz:

# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile

5
Gilles, bu cevap NSF bağlama noktasının altına kaydedilen yıldız kayıtlarını almam gerektiğinde kıçımı kurtardı! Her zaman düşündüm - bağlama kullanıcı ile aynı bakış açısına sahipti. Teşekkür ederim!
andyortlieb

Peki ya dizinler? Eğer üzerine monte edersem, /mount-point/1/o zaman başka bir dosya sistemini kurduysam, /mount-point/hala erişebilir /mount-point/1/miyim?
CMCDragonkai 18:15

@ CMCDragonkai Evet, dolaylı olarak, cevabımda açıklandığı gibi bir bağlama bağlaması kullanarak.
Gilles 'SO- kötülük'

Giles, bu harika bir teknik ve kendi sistemimde olanları analiz etmeme yardımcı oldu. Ayrıca, tüm kök dizinlerin bağlama noktalarını geçmeden kullanımını kontrol etmenin bir başka sorusu için de yardımcı oldu. Çözüm: mkdir /r; mount --bind / /r; du -sh /r/*. Teşekkürler
Manngo

Gelecekte referans olması için @Manngo, bu gerekli değildir. du -x(buna eşdeğer du --one-file-system) --bindşenanyalılara ihtiyaç duymadan yapardı .
Darael,
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.