Linux: ระบบไฟล์ Case-INSENSITIVE


13

มีวิธีการอะไรบ้างในการทำให้ระบบไฟล์ Linux เป็นกรณี ๆ ไป?

ฉันมีแอพพลิเคชั่น asp.net ที่พัฒนาบน Windows แต่มักมีปัญหาเกี่ยวกับตัวพิมพ์ใหญ่ / การสะกดคำบนโมโนเมื่อวางไว้บน Linux

วิธีหนึ่งคือการติดตั้ง localhost SMB share ไปที่ / var / www มีคนอื่นอีกไหม?


14
การแก้ไขแอปพลิเคชันนั้นจะง่ายกว่าการแฮกระบบปฏิบัติการเพื่อหลีกเลี่ยงแอปที่ใช้งานไม่ได้หรือไม่
Aaron Tate

2
แอปพลิเคชันเว็บนี้ให้บริการผ่าน apache หรือไม่คุณสามารถใช้ mod_speling
Zoredache

2
ดูเหมือนว่ากรณีของ "หรือคุณสามารถสอนให้ผู้พัฒนาเว็บของคุณให้สอดคล้องกับการตั้งชื่อไฟล์ของพวกเขาในความเจ็บปวด"
Shadur

คำตอบ:


15

หากคุณกำลังพูดถึงเรื่องความรู้สึกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ภายในแอปที่ทำงานภายใต้ Mono คุณสามารถใช้IOMAPตัวแปรสภาพแวดล้อมเพื่อบอกโมโนให้ละเว้นตัวพิมพ์เล็กและใหญ่เช่นเดียวกับ Windows

ดูรายละเอียดการใช้งานได้ที่นี่: http://www.mono-project.com/IOMap


15

มีไดรเวอร์ ext3 ที่ไม่ตอบสนองต่อกรณีเล็ก ๆ น้อยๆ แต่จริงๆแล้วการรันสิ่งต่าง ๆ ในการผลิตจะทำให้ฉันตกใจเล็กน้อยเนื่องจากคุณกำลังหมุนเคอร์เนลที่คุณกำหนดเองพร้อมกับไดรเวอร์ที่ได้รับการติดตั้ง (ใช่แล้ว - เราทำอย่างนั้นตลอดเวลา "ย้อนกลับไปในวัน" แต่นั่นก็เหมือน 1997)

มีการนำ FUSE มาใช้, ciopfs , ซึ่งใช้ตัวพิมพ์เล็กและตัวพิมพ์เล็ก นั่นน่าจะเป็นเรื่องที่น่ากลัวน้อยมากสำหรับฉันที่จะใช้ในการผลิตมากกว่าเคอร์เนลที่ถูกปะแก้

คุณสามารถใช้ระบบไฟล์แบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เช่น VFAT สำหรับ/var/wwwลำดับชั้นของโฟลเดอร์ ฉันจะใช้การติดตั้งลูปแบ็คในกรณีเช่นนี้โดยที่คุณไม่ต้องยุ่งกับการแบ่งพาร์ติชั่นดิสก์ของคุณ


ciopfs เป็นอึที่ฉันพยายามมันมันไม่เพียงเป็นตัวพิมพ์เล็ก map เพื่อพิมพ์เล็กพิมพ์ใหญ่ไม่สนใจใด ๆ ...
ไม่แน่ใจ

1
@Quandary Run awk '/^ciopfs/ {print $2}' /proc/mountsและจะส่งชื่อของไดเรกทอรีที่จะใช้ หลังจากที่คุณเรียกคุณไม่ควรเข้าถึงหรือไฟล์ปรับเปลี่ยนภายใต้ciopfs a/ b/ a/

@ ข้อ จำกัด ตัวพิมพ์เล็กถูกเขียนลงบนหน้าของโปรเจ็กต์และค่อนข้างชัดเจน tbh คุณลองปรับปรุงเพื่อจัดการกรณีการใช้งานหรืออย่างน้อย RTFM ก่อนการใช้งานหรือไม่?
Michael Shigorin

9

Necromancing
ตอบคำถามของฉันเอง
นี่เป็นไปได้แน่นอน
ชุดตัวเลือกที่ 1:
สร้างไฟล์. dsk ขนาด X-MB (พร้อม dd) จากนั้นสร้างระบบไฟล์ JSF บนไฟล์นั้นพร้อมตัวเลือก O (ความเข้ากันได้กับ OS2 - = ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
จากนั้นวนไฟล์เข้าไปในโฟลเดอร์ที่ต้องการ .

(apt-get install jfsutils)
dd if=/dev/zero of=jfs.dsk bs=1048576 count=150
mkfs.jfs -O jfs.dsk
mkdir -p /mnt/jfs
mount /volumes/jfs.dsk /mnt/jfs -t jfs -o loop
umount /mnt/jfs/

Variant 2:
เมื่อคุณติดตั้งระบบปฏิบัติการให้แบ่งพาร์ติชันดิสก์ด้วยตนเองและสร้างพาร์ติชันอื่นที่มีรูปแบบ JFS ซึ่งคุณจะเมาท์ไปทุกที่ที่คุณต้องการ
เมื่อทุกอย่างพร้อมใช้งานคุณสามารถฟอร์แมตพาร์ติชั่นนั้นใหม่ได้ (คำเตือน - นี่จะลบข้อมูลทั้งหมดในพาร์ติชั่นนั้น - ตรวจสอบให้แน่ใจว่าคุณได้เลือกพาร์ติชันที่เหมาะสมและยังไม่มีข้อมูลใด ๆ อยู่):

unmount พาร์ติชันที่เมาท์

umount /web

ฟอร์แมต:

mkfs.jfs -O /dev/hda5

ประกอบพาร์ติชันใหม่

mount /dev/hda5 /web

ตอนนี้ทำงาน

blkid

และคุณจะได้รับพาร์ติชันใหม่
ตอนนี้ไปที่ / etc / fstab และแทนที่ uuid เก่าสำหรับ / dev / hda5 ด้วยอันใหม่

หากคุณทำสิ่งนี้ผิดโปรดดู
ยินดีต้อนรับสู่โหมดการบูตฉุกเฉิน ...


คุณจัดการกับเรื่องนี้มาเจ็ดปีครึ่งแล้ว! คุณคิดว่าตอนนี้ "นักพัฒนา" ที่คุณกำลังทำอยู่นั้นจะทำให้มันเป็นโรงเรียนประถม / ประถม
Andrew Henle

3
@Andrew Henle: ไม่จริงเราเลือกวิธีอื่น - พาร์ติชัน windows เล็ก (ext3) ตอนนี้ปัญหากลับมาพร้อมกับ. NET Core และนี่คือทางออกที่ฉันได้รับ ตอนนี้ฉันมีลีนุกซ์พาร์ติชันที่คำนึงถึงขนาดตัวพิมพ์โดยไม่ต้องใช้ฟิวส์ / ciops, smb, hfs / hpfs +, extX-fs ที่ถูกแฮ็ก, mount mount หรือ crap ใด ๆ นี่เป็นวิธีที่เหมาะสม จนถึงตอนนี้ไม่มีใครตอบคำถามที่น่าพอใจในช่วง 7 ปีที่ผ่านมาดังนั้นฉันคิดว่าฉันจะ
Quandary

ขอบคุณฉันทำให้มันทำงานได้ สำหรับคนที่มองสิ่งนี้ในปี 2020 ให้ระวังเคอร์เนล linux 5.2 และ e2fsprogs 1.45 เพิ่มการสนับสนุน casefold สำหรับ ext4 ดูสิ่งนี้: unix.stackexchange.com/questions/558977/…
Jorge Yanes Diez
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.