আপনি এটি একটি সংক্ষিপ্ত বাশ স্ক্রিপ্ট দিয়ে পুরোপুরি করতে পারেন:
#!/bin/bash
set -eu
shopt -s nullglob
[ "$#" -eq 0 ] || cd -- "$1"
i=0
for f in *; do
printf '%d. %s\n' "$((++i))" "${f//$'\n'/^N}"
done |
cat -vt
আপনি এমনকি অভিনব হতে পারেন এবং 9 টিরও বেশি ফলাফলের জন্য লাইন নম্বর প্যাড করতে পারেন:
#!/bin/bash
set -eu
shopt -s nullglob
[ "$#" -eq 0 ] || cd -- "$1"
ls=(*)
pad=${#ls[@]}
pad=${#pad}
i=0
for f in *; do
printf '%*d. %s\n' "$pad" "$((++i))" "${f//$'\n'/^N}"
done |
cat -vt
ব্যবহার
ধরে নিচ্ছি যে আপনি numbered-ls.shবর্তমান স্ক্রিনিংটিকে কার্যক্ষম ডিরেক্টরি হিসাবে এক্সিকিউটেবল ফাইল হিসাবে সংরক্ষণ করেছেন :
./numbered-ls.sh [DIRECTORY]
যুক্তিটি DIRECTORYalচ্ছিক এবং বর্তমান ওয়ার্কিং ডিরেক্টরিতে ডিফল্ট।
ব্যাখ্যা
যদি স্ক্রিপ্টটি আর্গুমেন্টের সাথে আহ্বান জানানো হয় তবে প্রথম আর্গুমেন্টে কার্য ডিরেক্টরিকে পথে পরিবর্তন করুন।
বর্তমান কার্যনির্বাহী ডিরেক্টরিগুলির সমস্ত এন্ট্রি মেলে এবং সেগুলি সন্ধান করুন। প্রতিটি এন্ট্রি ইনক্রিমেন্টের জন্য একটি কাউন্টার এবং প্রবেশের নামের সাথে এর মানটি মুদ্রণ করুন। প্রবেশের নামে লাইন ব্রেকের অক্ষরগুলি প্রতিস্থাপন করা হয় ^N।
cat -vtটার্মিনালটি নিয়ন্ত্রণের অক্ষর হিসাবে ব্যাখ্যা করতে পারে এমন মুদ্রণযোগ্য অক্ষরগুলি ধারণ করে এমন ফাইল নামগুলির সাথে করপুণতার সাথে আউটপুটটি পাইপ করুন ।