Như @ sergiy-kolodyazhnyy đã nói, độ dài tên tệp tối đa sẽ phụ thuộc vào hệ thống tệp và phần lớn giới hạn phần lớn tên tệp là 255 byte.
Một thiếu sót đáng chú ý từ biểu đồ của ông là phương tiện truyền thông quang học. Mặc dù các tiện ích mở rộng UDF và Rock Ridge có cùng giới hạn 255 ký tự cho tên tệp, nhưng ISO9660 không có Rock Ridge và Joliet đều có giới hạn chặt chẽ hơn mà bạn thực sự có thể gặp phải nếu bạn đang làm gì đó như sao lưu các bản youtube-dl
tải xuống.
Tên tệp của Joliet bị giới hạn ở 64 điểm mã UTF-16 hoặc 103 trong số chúng nếu chương trình làm chủ đĩa của bạn có tùy chọn thoát khỏi thông số theo cách dường như không gây hại trong thực tế.
Tương tự, ISO 9660 Levels 2 & 3, không có phần mở rộng Rock Ridge, bị giới hạn ở tên tệp 31 ký tự hoặc 37 nếu bạn chơi nhanh và lỏng lẻo với thông số kỹ thuật.
ISO 9660: 1999, được hỗ trợ bởi genisoimage nhưng không phải bởi các mặt trận như K3b, có giới hạn là 207 byte (không có Rock Ridge) hoặc 197 byte (với Rock Ridge).
(Nguồn: Trang chủ genisoimage
)
Đối với chiều dài đường dẫn tối đa , đó là một quan niệm sai lầm lớn. Không có cái nào cho hầu hết các hệ thống tập tin Linux.
Có một hằng số được đặt tên PATH_MAX
, nhưng nó chỉ là mức tối đa cho các API POSIX nhất định mà bạn có thể làm việc xung quanh .
Các trường hợp ngoại lệ duy nhất cho quy ước "không giới hạn độ dài đường dẫn" này là FAT32 và exFAT (32.760 ký tự Unicode), NTFS và ReFS (32.767 ký tự Unicode), UDF (1.023 byte) và ISO 9660 (không rõ ràng, nhưng tôi đã thấy nó được tuyên bố là 180, 207, 212 hoặc 222 byte).
Điều này có thể dễ dàng được chứng minh bằng cách chạy chương trình Python nhỏ này và sau đó khám phá các thư mục kết quả.
import os
for X in range(20):
os.mkdir('x' * 255)
os.chdir('x' * 255)
My bash
, hiển thị toàn bộ đường dẫn trong dấu nhắc, sẽ có troublr với nó. Tuy nhiên zsh
, chỉ hiển thị thư mục hiện tại trong dấu nhắc sẽ không gặp sự cố và thậm chí có một pwd
nội dung có thể hiển thị toàn bộ đường dẫn 5000 + mà không gặp sự cố.