“Tuhaf dosya” nedir?


38

Kullandığım bir uygulama bu kullanıcı mesajıyla başlamayacak: [Errno 13] Permission denied: '/home/sleblanc/.config/app/.config

Kullandığımda lsdosya şöyle geldi:

?--------- 1 root root     0 Dec 31  1969 .config

Dosyada stat çalıştırmak bana şunu veriyor:

% stat .config
  File: .config
  Size: 0           Blocks: 0          IO Block: 4096   weird file
Device: 2dh/45d Inode: 9799944     Links: 1
Access: (0666/?rw-rw-rw-)  Uid: ( 1000/     sleblanc)   Gid: ( 1000/         sleblanc)
Access: 1969-12-31 19:00:00.000000000 -0500
Modify: 1969-12-31 19:00:00.000000000 -0500
Change: 2018-04-07 23:40:22.549653691 -0400

En şaşırtıcı olanı, "garip bir dosya" dan bahsetmektir.

Garip bir dosya nedir?


Ne stat -c '%f' .configyazdırır? (Dört basamaklı onaltılık bir sayı almalısınız.) Ayrıca, ne stat -f .configyazdırır? (Bu, içeren dosya sistemi hakkında bilgi bildirir .config.)
zwol

4
Dosyada, ID sıfır olan kök sahibi ve sahibi var. Bu, @ peterh'in bazı meta verilerin sıfırlandığı varsayımını destekliyor.
CSM

ECryptfs kullanıyor musunuz?
kasperd

Yanıtlar:


39

(GNU varsayarsak ...) statNe tür olduğunu söyleyemezseniz (dizin, (boş) normal dosya, link, soket, ...) diyor weird file. Dosya sisteminin bozulmasını tahmin ediyorum ve öneriyorum fsck.


2014 yılında GNU çekirdek elemanlarına tanınan ek dosya türleri eklenmiştir. Bu nedenle, sürümünüz bundan daha eskiyse, bazı özel durumlar için makul bir dosya olabilir, ancak bir uygulamanın config dosyasını düzenli bir dosyada saklama olasılığı yüksektir.


Ancak, bazı yazılım bir soket veya .config adlandırılmış bazı garip Çeşidi linki ... kullanabilir
rackandboneman

1
@ statGNU coreutils @ rackandboneman sistemimde mutlu bir soket olarak bildirir socket. Symlinks olarak bildirilir symbolic link. Hardlinks "normal" dosyalardan ayırt edilemez regular fileve bağlantı sayısının> 1 olması dışında (sonuçta bunlar olduğu gibi) olarak bildirilir .
bir CVn

"bazı garip türler" - C kodunun bu süper ayrıntılı bölümünde bulunan diğer düzinelerce çorap veya bağlayıcı türden bahsediyordum (dosya dizisi dizini sadece dosya türü numarasıyla indekslememek için kesinlikle iyi bir neden var.) .. Sanırım ...) :)
rackandboneman

@rackandboneman Base POSIX, bir "dosya türü numarası" nı stat yapısından (S_ISxxx () makrolarından) çıkarmanın bir yolunu sağlamaz. Bazı Unix'ler, bunu yapmanın bir yolunu içeren bir dizi "XSI" uzantısı sunar, ancak coreutils, XSI'ye bağımlı olmamayı dener ya da en son baktığımda yaptı.
zwol

Ahhh tamam. Biraz GNU / linux merkezli olması gerektiğine
inandırıcı bir
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.