Bash tarafından listelenen ancak erişilemeyen dosyalar


0

Ubuntu 12.04 sisteminde aşağıdaki davranışa ne sebep olur?

  1. Bir makineye "ubuntu" kullanıcısı olarak SSHed kullandım.
  2. Çalıştırma ls -lah /data/*, hepsi "ubuntu" kullanıcı / grubuna ait olan ve tam okuma / yazma erişimine sahip olan onlarca boş olmayan dosyayı (örneğin, file1.txt, file2.txt, vb.) Gösterir.
  3. Eğer cat /data/file1.txtdenersem, bash bana "cat: /data/file1.txt: Böyle bir dosya veya dizin yok" hatası veriyor.

Kısacası, lsdosyaları listelemek, ancak her şekilde, dosyalar aslında yoktur. Onları kedi ya da hiçbir şekilde okuyamıyorum. Tüm dosyalara 777 izin vermek bile hiçbir şeyi değiştirmez. Bu gerçekten tuhaf. Burada neler oluyor?


Çıktı nedir ls -lad /data/file1.txt? Mı /data/file1.txtbir sembolik bağlantı?
Darth Android

Hangi izinler /dataklasörde ( ls -lad /data) ayarlanmış ? Belki xsahibine ait değildir , bu nedenle dosyaları listeleyebilirsiniz ancak erişemezsiniz.
NuTTyX

@NuTTy: Sorun buysa, dosya boyutlarını, sahipliğini ve izinlerini görmek mümkün olmazdı ls -l….
G-Man

Zekanıza hakaret etme riski altında - dosyalara baktığınızdan emin misiniz /data? Çünkü ls /data/*( -dseçenek olmadan ) içindeki tüm dizinlerin içeriğini listeler /data. Tek yapmanız gereken içeriğini listelemekse, /datasöyleyecek kadar iyi ls -lh /data(veya istediğiniz seçeneklerden hangisi; ve elbette -ave -Aisimleri başlayacak olan şeyleri içerecektir .). ………… Ayrıca, lütfen ls -lb /datadosya adlarındaki görüntülenemeyen ikili karakterleri kontrol etmeye çalış .
G-Man

Sonuç nedir file /data/file1.txt veyacd /date file file1.txt
broomdodger

Yanıtlar:


2

Dosya adında ikili karakterleri olabilir.

İçin cat /data/file1.txt, yerine adı kısmen uyan, ve geri kalanı dışarı kabuk rakam icar deneyin:

cat /data/*1.txt

Hayır, bunu zaten kontrol ettim. Dizinde otomatik olarak tamamlamaya çalışmak bile hiçbir şey döndürmez, çünkü hiçbir dosya okunamaz.
Cerin

Otomatik tamamlama yalnızca belirli dosyaları "görebilir". Bunu dene:egrep . /data/*
johntellsall

0

Dosyalar silinmiş olabilir, ancak uygulamada hala açık. Dosyalar diskte mevcut değildir, ancak uygulama hala "açık" olduklarından, çekirdek bunları henüz dosya sisteminden kaldıramaz.

Dosyaları kullanarak işlemi bul

sudo lsof | grep data/file1.txt

Ardından kritik değilse, uygulamayı yeniden başlatmayı / öldürmeyi deneyin veya sistemi yeniden başlatmayı deneyin.


1
Kullanılmakta olan bir "uygulama" yoktur. rsync -avz /data ubuntu@remotehost:/dataYerel ana bilgisayarımdan kaçmak için yaratılmışlar . Ve bash hala bunları bir yüzlerce MB'lik dosya boyutunda listeler.
Cerin
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.