বাশ কমান্ডে ফাইলের জন্য ছোট নাম


0

আমি ফাইলগুলিতে অ্যাক্সেসের স্বল্প উপায় চাই যা আমি সাধারণত ব্যাশে ব্যবহার করি। উদাহরণস্বরূপ, লগগুলি দেখুন। এখন আমি ব্যবহার করি:

less /var/log/user/server.log
less /var/log/user/server2.log

আমি শর্টকাট চাই

less server.log
less server2.log

আমি এই পরিবর্তনটি .বাশ_ প্রোফাইলে চেষ্টা করে দেখি, তবে কোথাও ভুল হয়েছে:

less() { if [[ $@ == "server.log" ]]; then command less /var/log/user/server.log; else command less "$@"; fi; }

পরামর্শে ধন্যবাদ!

উত্তর:


5

আপনি ফাইলগুলি যেমন সিমিলিংক করতে পারেন:

ln -s /var/log/user/server.log server.log
ln -s /var/log/user/server2.log server2.log

এবং তারপরে আপনি এই ফাইলগুলির সাথে যা খুশি তা করতে পারেন:

less server.log
tail -f server2.log

0
serverlog=/var/log/user/server.log
serverlog2=/var/log/user/server2.log

less $serverlog

0

আমি বিরক্ত হয়েছি তাই আমি আপনার জন্য এই ব্যাশ শেল ফাংশনটি লিখেছি:

less()
{
    OIFS="$IFS"; IFS=:
    lesspath=('' $LESSPATH)
    IFS="$OIFS"
    for arg ; do
            for path in "${lesspath[@]}" ; do
                    file="${path:+$path/}${arg}"
                    if [[ -e "${file}" ]] ; then
                            command less "${file}"
                            continue 2
                    fi
            done
            command less "${arg}"
    done
}

আপনার .bashrc, সেটটিতে এই শেল ফাংশনটি রাখুন LESSPATH=/var/log/userএবং এখন আপনি যেমন চান তেমন চালাতে পারবেন।

LESSPATHঅন্যান্য PATH এনভায়রনমেন্ট ভেরিয়েবলের মতো, আপনি কলোন দিয়ে আলাদা করে অন্যান্য পাথ যুক্ত করতে পারেন । সুতরাং, আপনি যদি সেট করেন তবে LESSPATH=/var/log:/var/log/userসহজেই less syslogযে কোনও জায়গা থেকে সহজেই দৌড়াতে পারবেন /var/log/syslog


0

এলিয়াস ব্যবহার করতে আপনিও এরকম কিছু করতে পারেন ..

এটি .bashrc এ যুক্ত করুন

function lss { less "$1"; }
export lss
alias lf='echo /var/log/syslog'

চালান

. ~/.bashrc

এখন আপনি এটি করতে পারেন:

less $(lf)

অথবা

lss $(lf)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.