ls
বিকল্পের --group-directories-first
ফলে ডিরেক্টরিগুলি শীর্ষে তালিকাভুক্ত হয়, যা আউটপুটটিকে ls
সুন্দর এবং পরিষ্কার করে তোলে :
ls -l --group-directories-first
তবে এটি এতে কাজ করে না symlinks
, যা আসলে symlinks
ডিরেক্টরিতে হয়। ব্যবহার করার সম্ভাবনা রয়েছে
ls -l -L --group-directories-first
যা উপরে উভয় প্রকারের ডিরেক্টরি তালিকাভুক্ত করবে, তবে সঠিক ডিরেক্টরি এবং সিমলিঙ্কযুক্ত ডিরেক্টরিতে পার্থক্য করবে না, যা আবার বিভ্রান্তিকর।
ls
নিয়মিত ডিরেক্টরি থেকে আলাদা করে রেখেও কি উপরের সিমলিঙ্কযুক্ত ডিরেক্টরিগুলি প্রদর্শন করতে পারে ?
সম্পাদনা:
আমি ব্যবহার করছি bash
।
ls
না lstat()
(এবং readlink
symlinks জন্য) যদি না আপনি ব্যবহার -L
বিকল্প (যে ক্ষেত্রে এটি ব্যবহার করে stat()
)
S_ISLNK(st_mode)
এছাড়াও মাধ্যমে সত্য ফিরে stat()
, কিন্তু এটা না - এটি শুধুমাত্র মাধ্যমে তাই আছে lstat()
। লিঙ্কটি কোনও লিঙ্কের লিঙ্ক হলেও আইএসএলএনকে স্ট্যাটের মাধ্যমে সত্যটি দেয় না। অর্থ যে ISLNK
স্ট্যাটাসের মাধ্যমে কখনও সত্য হতে পারে না, যদিও এটি এক ধরণের অনির্ধারিত ...
stat
আপনাকে সিমলিংকের (গুলি) শেষে ফাইলের বৈশিষ্ট্যগুলি সরবরাহ করে। যদি তা বিদ্যমান না থাকে বা অ্যাক্সেসযোগ্য না হয়, তবে stat
একটি ENOENT ফেরত দেয়, তাই যা ফিরে আসে stat
তা কখনই কোনও সিমলিংক হবে না। stat()
আপনাকে কখনই সিমলিংক সম্পর্কে কিছু বলবে না, ঠিক যেমনটি open
কখনই সিমলিংকটি খুলবে না, বা chmod()
কোনও সিমলিংকের অনুমতি পরিবর্তন করবে না ... ইত্যাদি
ls
।stat()
সিস্টেম কল অনুসারে একটি ডিরেক্টরিতে একটি প্রতীকী লিঙ্কটি এখনও একটি ডিরেক্টরি (S_ISDIR(st_mode)
সত্যটি ফিরে আসবে)। এটি চেক করার আগে প্রতীকীভাবে প্রতীকগুলিls
ছাড় দেয় ।