리눅스에서 파일 이름 길이 제한? 경로 길이 제한이 있습니까?

Linux에 파일 이름 또는 경로 길이 제한이 있습니까?



답변

파일 시스템 비교 , 특히 최대 파일 이름 길이 열 에서 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 제안한 마이클 아론 SAFYAN
  • dogbane의 설명에 따라 길고 긴 파일 이름 (또는 경로 이름)을 만드십시오.
  • Linux에서도 사용할 수있는 timgetconf 에서 제안한대로 명령 을 사용하십시오 .

    $ getconf NAME_MAX /mnt/sda2/
    255
    $ getconf PATH_MAX /mnt/sda3/
    4096
    

답변

그리고 시간을 절약하고 메모리에 고정시키기 위해 :

ext2, ext3, ext4, zfs : 경로명 제한 없음; 255 바이트 파일 이름 제한


답변

그것들은 파일 시스템 이름 길이입니다. “리눅스”자체도 일부 있습니다. 예를 들어 bits / stdio_lim.h에서 :

# define FILENAME_MAX 4096


답변

이식 가능한 방식으로 Linux에서 경로의 최대 길이를 결정할 방법없습니다 . 내 시스템에서 :

$ getconf PATH_MAX /
4096
$ getconf _POSIX_PATH_MAX /
4096

그러나 4096 자보다 훨씬 긴 경로를 쉽게 만들 수 있습니다. 대신 PATH_MAX하한으로 간주 하십시오 . 이 경로를 길게 만들 수는 있지만 더 긴 경로를 만들 수도 있습니다.


답변

페이지 에서 다음과 같이 지정된대로 항상 pathconf 또는 이와 같은 함수를 사용 하여 지정된 항목에 대한 런타임 값을 가져와야 합니다.

그러나 나열된 제한의 대부분은 변하지 않으며 런타임에 다음과 같은 이유로 제한 값이이 헤더에 제공된 값과 다를 수 있습니다.

  • 제한은 경로 이름에 따라 다릅니다.

  • 컴파일 머신과 런타임 머신의 한계가 다릅니다.

이러한 이유로 응용 프로그램은 fpathconf (), pathconf () 및 sysconf () 함수를 사용하여 런타임시 제한의 실제 값을 확인할 수 있습니다.