답변:
파일 시스템 비교 , 특히 최대 파일 이름 길이 열 에서 Wikipedia 페이지를 참조하십시오 .
다음은 널리 사용되는 파일 시스템에서 일부 파일 이름 길이 제한 입니다.
BTRFS 255 bytes
exFAT 255 UTF-16 characters
ext2 255 bytes
ext3 255 bytes
ext3cow 255 bytes
ext4 255 bytes
FAT32 8.3 (255 UCS-2 code units with VFAT LFNs)
NTFS 255 characters
XFS 255 bytes
내가 읽은 여기에 해당 경로 길이 제한 시스템 헤더입니다. 파일 이름 길이 제한도 있습니다. 내 시스템에서는 파일입니다.
/usr/src/linux-headers-2.6.38-10/include/linux/limits.h
C-lang은 다음을 정의합니다.
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
그리고 더 많은.
다른 답변을 참조하십시오.
Linux에 파일 이름 또는 경로 길이 제한이 있습니까?
예, 파일 이름 및 경로 이름 길이는 다음으로 제한됩니다.
이러한 속성을 동적으로 가져 오려면
pathconf
하고fpathconf
제안한 마이클 아론 SAFYANLinux에서도 사용할 수있는 timgetconf
에서 제안한대로 명령 을 사용하십시오 .
$ getconf NAME_MAX /mnt/sda2/
255
$ getconf PATH_MAX /mnt/sda3/
4096
그리고 시간을 절약하고 메모리에 고정시키기 위해 :
ext2, ext3, ext4, zfs : 경로명 제한 없음; 255 바이트 파일 이름 제한
PATH_MAX = 4096
. 프로그램이 상대 경로를 사용할 수 있고 작업 디렉토리를 먼저 변경하면 해결할 수 있습니다.
그것들은 파일 시스템 이름 길이입니다. "리눅스"자체도 일부 있습니다. 예를 들어 bits / stdio_lim.h에서 :
# define FILENAME_MAX 4096
locate
.
이식 가능한 방식으로 Linux에서 경로의 최대 길이를 결정할 방법 이 없습니다 . 내 시스템에서 :
$ getconf PATH_MAX /
4096
$ getconf _POSIX_PATH_MAX /
4096
그러나 4096 자보다 훨씬 긴 경로를 쉽게 만들 수 있습니다. 대신 PATH_MAX
하한으로 간주 하십시오 . 이 경로를 길게 만들 수는 있지만 더 긴 경로를 만들 수도 있습니다.
os.pathconf()
모듈은 몇 가지 답을 가질 것입니다. 파이썬 포트가 좋다면 합리적이어야합니다.
시스템 limits.h 헤더 파일에 지정되어 있습니다.
다음 파일 중 하나입니다.
cat /usr/include/linux/limits.h
...
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
...
다음은이 파일의 사본이있는 위치와 파일이 정의한 값입니다.
find /usr | grep limits.h | xargs -I {} grep -H 'NAME_MAX' {}
산출:
...
/usr/include/linux/limits.h:#define NAME_MAX 255 /* # chars in a file name */
...