2013-01-24 42 views

回答

1

除了上面的答案,您還必須考慮正在使用的文件系統(ext2等)。 Unix沒有標準的答案。 Linux對於每個組件通常是255,對於完整路徑是4096,對於路徑是無限制的。其他Unix變體使用不同的限制。 OSX與HFS +是255文件名和1024或無限路徑(我找不到明確的答案)。除非你是積極的,否則你只需要擔心Linux,你可能會想保持整體的低下路徑。如果可能的話,限制整個路徑爲255並不是一個壞主意。您可能還需要考慮文件系統可以掛載網絡,而NFS,SMB等也有自己的限制。

Unix的簡短答案是沒有簡短的答案,也沒有標準,操作系統和底層文件系統都會施加限制。

+0

謝謝,它真的是一個蠕蟲的罐頭。 –

2

在Windows上,第1部分和第2部分應該都是255或更小,整個c:\ part1 \ part2應該是260或更少。有一種方法可以在WinNT內核(Windows 2000,XP和更高版本)上擁有更長的文件名和路徑,但是這要求訪問此類文件的應用程序明確支持這些文件名,因此在絕大多數情況下,您可以將255/260限制視爲硬限制。

+0

感謝您在Windows上的答案,現在只需要一個UNIX –

+0

爲什麼選擇260?似乎是一個任意數字。 –

+0

http://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows –

1

在Linux系統上,part1和part2應該都是255(即FILE_MAX)或更少,整個路徑應該是4096(即PATH_MAX)或更少。如解釋here所示,PATH_MAX的使用存在缺陷。

相關問題