“ ไฟล์แปลก” คืออะไร?


38

แอปพลิเคชันที่ฉันใช้จะไม่เริ่มต้นด้วยข้อความผู้ใช้นี้: [Errno 13] Permission denied: '/home/sleblanc/.config/app/.config

เมื่อฉันใช้lsไฟล์จะปรากฏขึ้นเช่น:

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

การเรียกใช้สถิติในไฟล์ให้สิ่งนี้กับฉัน:

% 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

สิ่งที่น่าประหลาดใจที่สุดคือการพูดถึง "ไฟล์แปลก"

ไฟล์แปลกคืออะไร?


อะไรstat -c '%f' .configพิมพ์? (คุณควรได้รับเลขฐานสิบหกสี่หลัก) นอกจากนี้สิ่งที่stat -f .configพิมพ์? (นี่จะรายงานข้อมูลเกี่ยวกับระบบไฟล์ที่มี.config)
zwol

4
ไฟล์มีเจ้าของ / กลุ่มของรูทซึ่งเป็น ID ศูนย์ สิ่งนี้สนับสนุนการคาดคะเนของ @ peterh ว่าข้อมูลเมตาบางส่วนถูกทำให้เป็นศูนย์
CSM

คุณใช้ eCryptfs อยู่หรือเปล่า?
kasperd

คำตอบ:


39

(สมมติว่า GNU ... ) หากstatไม่สามารถบอกได้ว่ามันเป็นพิมพ์ (ไดเรกทอรี (ว่าง) ปกติไฟล์ลิงก์ซ็อกเก็ต, ... ) weird fileมันบอกว่า fsckฉันเดาทุจริตระบบแฟ้มและแนะนำ


ในปี 2014มีการเพิ่มประเภทไฟล์ที่รู้จักเพิ่มเติมให้กับ GNU coreutils ดังนั้นหากเวอร์ชันของคุณเก่ากว่านั้นอาจเป็นไฟล์ที่เหมาะสมสำหรับสถานการณ์พิเศษบางอย่าง แต่แอปมีแนวโน้มสูงที่จะจัดเก็บการกำหนดค่าไว้ในไฟล์ปกติ


อย่างไรก็ตามซอฟต์แวร์บางตัวอาจใช้ซ็อกเก็ตหรือลิงค์ประเภทคี่บางอย่างที่ชื่อ. config ...
rackandboneman

1
@rackandboneman statจาก coreutils GNU socketในระบบของฉันมีความสุขรายงานซ็อกเก็ตเป็นที่ symlinks symbolic linkจะมีการรายงานเป็น ฮาร์ดลิงก์จะแยกไม่ออกจากไฟล์ "ปกติ" และมีการรายงานว่าregular file(นั่นคือสิ่งที่มันเป็นหลังจากทั้งหมด) ยกเว้นว่าจำนวนลิงก์คือ> 1
CVN

"ประเภทคี่บางอย่าง" - ฉันหมายถึงประเภท sockety หรือ linky อื่น ๆ อีกมากมายที่พบในส่วน super-verbose ของรหัส C (แน่นอนมีเหตุผลที่ดีสำหรับการไม่เพียงจัดทำดัชนีอาร์เรย์ของสตริงด้วยหมายเลขประเภทไฟล์ .. ฉันเดาว่า ... ) :)
rackandboneman

@rackandboneman Base POSIX ไม่ได้ให้วิธีการแยก "หมายเลขประเภทไฟล์" จากโครงสร้างสถิติเฉพาะมาโคร S_ISxxx () Unixes บางตัวเสนอชุดของส่วนขยาย "XSI" ที่มีวิธีการทำเช่นนั้น แต่ coreutils พยายามที่จะไม่พึ่งพา XSI หรือทำครั้งสุดท้ายที่ฉันดูต่อไป
zwol

Ahhh ตกลง ฉันเป็นชนิดของการผิดพลาดสมมติ coreutils จะมีมากขึ้น GNU / Linux เป็นศูนย์กลางว่ามันหมายถึงการเป็น :)
rackandboneman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.