ชื่อไฟล์จะยาวได้เท่าไหร่?


17

นานแค่ไหนที่สามารถเป็นชื่อไฟล์และชื่อโฟลเดอร์ใน Ubuntu Linux และตัวละครที่ได้รับอนุญาตในชื่อไฟล์และชื่อโฟลเดอร์ใน Ubuntu Linux?

คำตอบ:


21

ชื่อไฟล์ใน Linux มีความยาว 14 ไบต์ในรุ่น Unix ก่อนหน้า แต่ระบบ Linux ที่ทันสมัยมี 255 ไบต์สำหรับชื่อไฟล์

เนื่องจากอักขระต้องมี 1 ไบต์ความยาวจะกลายเป็น 255 อักขระ นอกจากนี้โฟลเดอร์ต่างๆยังถือว่าเป็นไฟล์ในระบบ Linux

ดูลิงค์นี้สำหรับข้อมูลเพิ่มเติม


2
ชื่อไฟล์คือ utf-8 ดังนั้นความยาวของตัวแปร: หนึ่งไบต์สำหรับอักขระ ASCII ใด ๆ 2 ตัวหรือมากกว่าสำหรับตัวละครอื่น ๆ เช่น£, ★, ≠, ☺, ¡, á, á, …, ฯลฯ
ctrl-alt-delor

1
หากชื่อไฟล์อยู่ในการเข้ารหัสแบบ UTF จำนวนตัวอักษรจะลดลงเมื่อมีการเข้ารหัสแบบ UTF จำนวนมากขึ้น ดูserverfault.com/a/542452/363611และความคิดเห็นด้านล่างคำตอบนั้น
Sergiy Kolodyazhnyy

4

ฉันไม่แน่ใจว่าความยาวของชื่อไฟล์สูงสุดจะเป็นเท่าไหร่ (สำหรับ ext4) แต่มันขึ้นอยู่กับระบบไฟล์มากกว่าตัว Linux ใน FAT32 ฉันคิดว่ามันเป็น 255 ตัวอักษร คุณอาจไม่จำเป็นต้องใช้ชื่อไฟล์จริงๆ

สำหรับอักขระที่อนุญาตให้ใช้ค่าไบต์ใด ๆ ที่ได้รับอนุญาตบนระบบไฟล์ ext4 ยกเว้นไบต์ NULL (และ/เนื่องจากเป็นตัวคั่นไดเรกทอรี1 ) อย่างไรก็ตามคุณควร จำกัด ชื่อไฟล์ของคุณไว้ที่ชุดอักขระ UTF-8 เพื่อให้เข้ากันได้กับแอพพลิเคชั่นและอุปกรณ์ต่าง ๆ ที่กว้างที่สุด

1.ตามที่ระบุไว้ในคู่มือ glibc "อนุญาตให้ใช้อักขระใด ๆ ยกเว้นอักขระ null ในสตริงชื่อไฟล์" แต่/ในสตริงชื่อไฟล์จะแยกชื่อของไฟล์หรือโฟลเดอร์หนึ่งจากชื่อพาเรนต์


ฉันพูดได้แค่ขีด จำกัด az, AZ และตัวเลข การเพิ่มไม่ใช่ตัวเลขเป็นขอทานเพื่อค้นหาข้อบกพร่องในการแยกวิเคราะห์ url
RobotHumans

@ aking1012 ฉันต้องการใช้ '.' และ '@' ไม่แนะนำให้เลือก
Gaurav Agarwal

'' แน่นอนว่าใช้ได้ ฉันไม่ได้เห็น @ go wooly แต่ฉันคิดว่ามันน่าจะทำได้ในบางมุม เครื่องมือแยกวิเคราะห์ใช้เป็นตัวคั่นและไม่สามารถหลบหนีได้อย่างถูกต้องเป็นสิ่งที่ฉันอ้างถึง - ตัวอย่าง: space, /, ", ',', etc
RobotHumans

1
ช่วงเวลาที่.ใช้กันอย่างแพร่หลายในระบบของตัวเองจึงไม่เป็นปัญหา ที่@ควรจะดีฉันเห็นเซิร์ฟเวอร์อีเมล (เช่นexim) ที่มีหนึ่งไดเรกทอรีต่อบัญชีที่มี@และไม่มีปัญหาใด ๆ
Marios Zindilis

1
ใช้ a @ ได้ดี 2 ข้อสังเกต: หากคุณใช้สิ่งที่พิเศษคุณสามารถหลบหนีถ่านได้เสมอ นอกจากนี้โปรดทราบว่าบางครั้งมีการใช้ถ่านเป็นตัวแบ่ง: ตัวอย่างเช่น ssh ใช้เพื่อแยกผู้ใช้และระบบ: ตัวอย่างนี้: user@system:/dir/dir@dir/อาจไม่แน่นอนและไม่เข้าใจ)
Rinzwind
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.