উত্তর:
ফাইল সিস্টেমের তুলনা সম্পর্কে উইকিপিডিয়া পৃষ্ঠাটি দেখুন , বিশেষত কলামে ফাইলের সর্বোচ্চ ফাইলের দৈর্ঘ্য ।
জনপ্রিয় ফাইল সিস্টেমে ফাইলের দৈর্ঘ্যের সীমা এখানে রয়েছে :
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
এবং সি ল্যাং সংজ্ঞা দেয়:
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
এবং আরো কিছু.
আমি অন্যান্য উত্তরগুলি উল্লেখ করি, দয়া করে সেগুলি উঁচু করুন।
লিনাক্সে কোনও ফাইল নাম বা পাথ দৈর্ঘ্যের সীমা আছে?
হ্যাঁ, ফাইলের নাম এবং পথের নামগুলি এর দ্বারা সীমাবদ্ধ:
linux/limits.h
দ্বারা বর্ণিত হিসাবে ধ্রুবক সংজ্ঞায়িত ।গতিশীলভাবে এই বৈশিষ্ট্যগুলি পেতে:
pathconf
এবংfpathconf
ব্যবহার করুনটিমgetconf
দ্বারা প্রস্তাবিত কমান্ডটি ব্যবহার করুন যা লিনাক্সেও উপলভ্য:
$ getconf NAME_MAX /mnt/sda2/
255
$ getconf PATH_MAX /mnt/sda3/
4096
এবং সময় সাশ্রয় করার জন্য (এবং এটি স্মৃতিতে অ্যাঙ্কর করে):
ext2, ext3, ext4, zfs: কোনও নামের সীমা নেই; 255 বাইট ফাইলের নাম সীমা।
PATH_MAX = 4096
যদিও বেশিরভাগ প্রোগ্রামগুলি নিখুঁত পথে সীমাবদ্ধ থাকে । যদি আপনার প্রোগ্রামটি আপেক্ষিক পাথগুলি ব্যবহার করতে সক্ষম হয় এবং আপনি প্রথমে আপনার কার্যনির্বাহী ডিরেক্টরি পরিবর্তন করেন তবে এটি কাজ করা যেতে পারে।
এগুলি ফাইল সিস্টেমের নাম দৈর্ঘ্য। "লিনাক্স" নিজেই কিছু আছে। উদাহরণস্বরূপ, বিট / stdio_lim.h থেকে:
# define FILENAME_MAX 4096
locate
।
নেই কোন উপায় পোর্টেবল ভাবে লিনাক্স পাথ সর্বাধিক দৈর্ঘ্য নির্ধারণ। আমার সিস্টেমে:
$ getconf PATH_MAX /
4096
$ getconf _POSIX_PATH_MAX /
4096
তবে আমি সহজেই 4096 টি অক্ষরের চেয়ে দীর্ঘ পথ তৈরি করতে পারি। পরিবর্তে PATH_MAX
নিম্ন সীমা হিসাবে দেখুন । আপনি দীর্ঘ এই পথ তৈরি করতে সক্ষম হতে গ্যারান্টিযুক্ত, কিন্তু আপনি আরও দীর্ঘতর তৈরি করতে সক্ষম হতে পারে।
os.pathconf()
মডিউলের কিছু উত্তর থাকবে; পাইথন বন্দরটি যদি ভাল হয় তবে সেগুলি যুক্তিসঙ্গত হওয়া উচিত।
নির্দিষ্ট পৃষ্ঠাগুলি সম্পর্কে রানটাইম মান পেতে আপনার সর্বদা প্যাথকনফ বা এর মতো কোনও ফাংশন ব্যবহার করা উচিত , যেমন এই পৃষ্ঠাটি বলেছিল:
তবে এটি লক্ষ করা উচিত যে তালিকাবদ্ধ সীমাবদ্ধতার অনেকগুলিই অদল নয়, এবং রানটাইমের সময় সীমাটির মান নিম্নলিখিত শিরোনামে এই শিরোনামে দেওয়া থেকে পৃথক হতে পারে:
সীমাটি পথ-নির্ভর name
সংকলন এবং রানটাইম মেশিনের মধ্যে সীমাটি পৃথক হয়।
এই কারণে, কোনও অ্যাপ্লিকেশন রানটাইমের সময়সীমাটির প্রকৃত মান নির্ধারণ করতে fpathconf (), pathconf (), এবং sysconf () ফাংশন ব্যবহার করতে পারে।
এটি সিস্টেমের সীমাগুলিতে নির্দিষ্ট করে .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 */
...