解決策 1:
ファイル システムの比較に関するウィキペディアのページを参照してください。特に列 ファイル名の最大長 を参照してください。 .
ファイル名の長さの制限は次のとおりです。 一般的なファイル システム:
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
解決策 2:
ここで、パスの長さの制限がシステムヘッダーにあることを読みました。ファイル名の長さ制限もあります。私のシステムではファイルです:
/usr/src/linux-headers-2.6.38-10/include/linux/limits.h
および C 言語の定義:
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
解決策 3:
<ブロック引用>
Linux にファイル名またはパスの長さの制限はありますか?
はい、ファイル名とパス名の長さは次のように制限されています:
- WerkkreWが述べたファイルシステムの制限;
linux/limits.h
で定義された定数 sfp の記載どおり
これらのプロパティを動的に取得するには:
- 関数
pathconf
を使用する とfpathconf
Michael Aaron Safyan の提案 - dogbane で説明されているように、ファイル名 (またはパス名) をどんどん長く作成してください
-
コマンド
getconf
を使用します Linux でも利用できる tim の提案:$ getconf NAME_MAX /mnt/sda2/ 255 $ getconf PATH_MAX /mnt/sda3/ 4096
解決策 4:
時間を節約するため (そして記憶に定着させるため):
ext2、ext3、ext4、zfs:パス名の制限なし。 255 バイトのファイル名制限。
解決策 5:
これらはファイルシステム名の長さです。 「linux」自体にもいくつかあります。たとえば、bits/stdio_lim.h から:
# define FILENAME_MAX 4096