تا %60 درصد تخفیف برای تنها 8 نفر با کد 8ATHSL8U + صدور گواهینامه فقط تا
000000
امیرحسین کریم پور

نشان دادن اسم فایل ها هنگام زدن کلید TAB در ادامه دستور cat

سلام دوستان. من میخوام زمانی که دستور cat رو در ترمینال وارد کردم و کلید TAB رو زدم فقط اسم فایل ها برام نشون داده بشه. چون که بصورت پیش فرض هم اسم فایل ها و هم دایرکتوری نشون داده میشه. تا جایی که اطلاع دارم برای رسیدن به این هدف باید cat رو customize کنی و بعد کامپایلش کنی . متاسفانه انجام این کار دانش برنامه نویسی میخواد که فعلا من ندارمش. راهکار دیگه ای وجود داره ؟

این سوال 1 پاسخ دارد.
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.

با نوشتن Bash Function به هدفم رسیدم. توی دایرکتوری /etc/bash_completion.d/ یه فایل به اسم cat_no_dirs ایجاد کردم و کد های زیر رو توش نوشتم :

_cat_no_dirs ()
{
    COMPREPLY=()
    cur=($(compgen -o plusdirs -f -- "${COMP_WORDS[COMP_CWORD]}"))
    for ((i=0; i < ${#cur[@]}; i++)); do
        [ -d "${cur[$i]}" ] && continue
        COMPREPLY+=(${cur[$i]})   
    done
    return 0
}
complete -F _cat_no_dirs cat

برای اینکه هر Interactive Shell ای که باز می کنید این تابع عمل کنه فایل etc/bash.bashrc/ رو باز کنید و قسمت زیر رو Uncomment کنید :

if ! shopt -oq posix; then
 if [ -f /usr/share/bash-completion/bash_completion ]; then
   . /usr/share/bash-completion/bash_completion
 elif [ -f /etc/bash_completion ]; then
   . /etc/bash_completion
 fi
fi

کد بالا علاوه بر اجرای توابع داخل فایل etc/bash_completion/ توابع داخل دایرکتوری /etc/bash_completion.d/ رو هم اجرا می کنه. حالا یکبار Logout و Login کنید. حالا هر bash shell ای باز کنید و کلید TAB رو بعد از دستور cat توی یه دایرکتوری که هم فایل داره هم فولدر از روی کیبوردتون بزنید فقط فایل ها رو تو پایین میبینید. 

لطفا سوالات فنی خودتون رو از طریق گزینه "بپرسید" مطرح کنید. از جواب دادن به هرگونه سوالات فنی در قالب پیام خصوصی معذورم.
  • انتخاب شده به عنوان جواب توسط 1 نفر
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر