Apa itu "file aneh"?

38

Aplikasi yang saya gunakan tidak akan mulai dengan pesan pengguna ini: [Errno 13] Permission denied: '/home/sleblanc/.config/app/.config

Ketika saya menggunakan ls, file muncul seperti ini:

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

Menjalankan stat pada file memberi saya ini:

% 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

Paling mengejutkan adalah penyebutan "file aneh" ini.

Apa itu file aneh?

sleblanc
sumber
Apa yang stat -c '%f' .configdicetak? (Anda harus mendapatkan nomor heksadesimal empat digit.) Juga, apa yang stat -f .configdicetak? (Ini melaporkan informasi tentang sistem file yang mengandung .config.)
zwol
4
File memiliki pemilik / grup root, yang merupakan ID nol. Ini mendukung anggapan @ peterh bahwa beberapa metadata telah di-zeroed.
CSM
Apakah Anda menggunakan eCryptfs?
kasperd

Jawaban:

39

(Dengan asumsi GNU ...) Jika stattidak dapat mengetahui jenisnya (direktori, (kosong) file biasa, tautan, soket, ...), katanya weird file. Saya kira korupsi filesystem dan menyarankan fsck.


Pada 2014 , jenis file tambahan yang dikenal ditambahkan ke GNU coreutils. Jadi, jika versi Anda lebih lama dari itu, itu mungkin file yang masuk akal untuk beberapa keadaan khusus, tetapi aplikasi sangat mungkin untuk menyimpan konfigurasinya dalam file biasa.

muru
sumber
Namun, beberapa perangkat lunak mungkin menggunakan soket atau tautan dari jenis aneh bernama .config ...
rackandboneman
1
@rackandboneman statdari GNU coreutils di sistem saya dengan senang hati melaporkan soket sebagai socket. Symlinks dilaporkan sebagai symbolic link. Hardlink tidak dapat dibedakan dari file "biasa" dan dilaporkan sebagai regular file(setelah semua itu), kecuali bahwa jumlah tautannya> 1.
CVn
"dari beberapa tipe ganjil" - Saya merujuk pada lusinan jenis sockety atau linky lain yang ditemukan di bagian super-verbose dari kode C (tentu ada alasan yang baik untuk tidak hanya mengindeks array string dengan nomor jenis file. .. Saya kira ...) :)
rackandboneman
@rackandboneman Base POSIX tidak menyediakan cara apa pun untuk mengekstrak "nomor jenis file" dari struktur stat, hanya makro S_ISxxx (). Beberapa Unix menawarkan satu set ekstensi "XSI" yang mencakup cara untuk melakukan itu, tetapi coreutils mencoba untuk tidak bergantung pada XSI, atau melakukan yang terakhir kali saya melihatnya.
zwol
Ahhh baiklah. Saya agak salah mengasumsikan coreutils menjadi lebih GNU / linux centric yang seharusnya :)
rackandboneman