আপনি গোপন পরিচালক (সমস্ত বিন্দু দিয়ে শুরু করে) সহ সমস্ত ডিরেক্টরি লুপ করতে পারেন:
for file in */ .*/ ; do echo "$file is a directory"; done
দ্রষ্টব্য: ফোল্ডারে কমপক্ষে একটি গোপন ডিরেক্টরি উপস্থিত থাকলে তালিকাটি */ .*/
zsh এ কাজ করে। ব্যাশে এটিও প্রদর্শিত হবে .
এবং..
বাশার জন্য লুকানো ডিরেক্টরিগুলি অন্তর্ভুক্ত করার আর একটি সম্ভাবনা হ'ল:
shopt -s dotglob;
for file in */ ; do echo "$file is a directory"; done
আপনি যদি চিহ্নগুলি বাদ দিতে চান:
for file in */ ; do
if [[ -d "$file" && ! -L "$file" ]]; then
echo "$file is a directory";
fi;
done
প্রতিটি সমাধানে কেবল অনুসরণযোগ্য ডিরেক্টরি নামের (এ, বি, সি) আউটপুট করতে লুপগুলির মধ্যে এটি ব্যবহার করুন:
file="${file%/}" # strip trailing slash
file="${file##*/}" # strip path and leading slash
echo "$file is the directoryname without slashes"
উদাহরণ (এটি এমন ডিরেক্টরিগুলির সাথেও কাজ করে যেখানে স্পেস রয়েছে):
mkdir /tmp/A /tmp/B /tmp/C "/tmp/ dir with spaces"
for file in /tmp/*/ ; do file="${file%/}"; echo "${file##*/}"; done