تبلیغات
لینوکس و من - جست و جوی فایل ها به روشی بسیار ساده در Thunar
لینوکس و من

جست و جوی فایل ها به روشی بسیار ساده در Thunar

نویسنده : امین | تاریخ: 1394/08/28

روشهای متفاوتی برای جست و جوی فایل ها در لینوکس وجود داره. هم از راه خط فرمان هم از راه گرافیکی. دسکتاپ های پیشرفته تر مثل گنوم و kde خب روش خاص خودشون رو دارن. اما باید در دسکتاپ های ساده تر مثل xfce خودمون دست به کار بشیم. در فروم ها از چیزی به نام catfish برای xfce نام بردند. اما این برنامه از gtk3 استفاده میکنه و با xfce سازگاری مناسبی نداره.
ما دنبال روش ساده تر و بی دردسر تری هستیم. تلفیق حالت گرافیکی با خط فرمان، که یک جست و جوی سریع و آنی برای ما میاره و نیاز به نصب چیز خاصی نیست. البته zenity باید نصب باشه که در اکثر توزیع ها به طور پیشفرض نصبه. اگه نبود نصب کنید.

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

آنگاه در  Thunar طبق این آموزش یک custom action ایجاد کنید و این مقادیر رو براش قرار بدید: (قسمت نارنجی محلیه که اسکریپت شما اونجا قرار داره)

Name: Search for files
Command: bash ~/Programs/searchforfiles.sh %f
File pattern: *
Appears if selection contains: Directories


حالا وقتی روی یک فولدر یا داخلش رایت کلیک کنید عبارت search for files رو میبینید. خودتون نتیجه ی کار رو ببینید که چقدر سریع و تمیز این کار رو انجام میده.

#!/bin/bash
#search-for-files

# change this figure to suit yourself - I find zenity dies from about 1000 results but YMMV
maxresults=500

# again, change the path to the icon to suit yourself. But who doesn't like tango?
window_icon="/usr/share/icons/Faenza/actions/scalable/search.svg"

# this script will work for any environment that has bash and zenity, so the filemanager is entirely down to you! you can add extra arguments to the string as long as the last argument is the path of the folder you open
filemanager="thunar"

window_title="Search for Files"

srcPath="$*"

if ! [ -d "$srcPath" ] ; then
cd ~/
srcPath=`zenity --file-selection --directory --title="$window_title - Look in folder" --window-icon="$window_icon"`
fi

if [ -d "$srcPath" ] ; then

fragment=`zenity --entry --title="$window_title - Name contains:" --window-icon="$window_icon" --text="Search strings less than 2 characters are ignored"`
if ! [ ${#fragment} -lt 2 ] ; then

(

echo 10
O=$IFS IFS=$'\n' files=( `find "$srcPath" -iname "*$fragment*" -printf \"%Y\"\ \"%f\"\ \"%k\ KB\"\ \"%t\"\ \"%h\"\\\n | head -n $maxresults` ) IFS=$O
echo 100

selected=`eval zenity --list --title=\"${#files[@]} Files Found - $window_title\" --window-icon="$window_icon" --width="600" --height="400" --text=\"Search results:\" --print-column=5 --column \"Type\" --column \"Name\" --column \"Size\" --column \"Date modified\" --column \"Path\" ${files[@]}`
if [ -e "$selected" ] ; then "$filemanager" "$selected" ; fi

) | zenity --progress --auto-close --pulsate --title="Searching..." --window-icon="$window_icon" --text="Searching for \"$fragment\""

fi

fi

exit

لینک‌های مرتبط

1395/02/1 14:16
سلام
من خیلی وقت پیش از این اسکریپت شما استفاده کردم

اما از نظر نشون دادن نتیجه فرقی با catfish نداشت که برای من مناسب نبود

برای همین یه گشتی زدم و برنامه pcmanfm رو پسندیدم، این برنامه فایل منیجر پیش‌فرض لوبونتو هست و نتیجه جستجو رو مثل ناتیلوس نشون می‌ده، فقط مشکلش اینه که در درایو ntfs فایل رو به trash نمی‌فرسته و مستقیم حذف می‌کنه (البته این قدر شعور داره که قبلش می‌گه نمی‌تونم با trash ارتباط برقرار کنم) (پیش‌نیازهایی هم داره که حجم چندانی ندارن)

برای من مهم بود که نتائج رو مثل وقتی که یه پوشه باز می‌کنم بهم نشون بده تا بتونم راحت حذف/تغییر نام /کپی/کات کنم
1394/08/30 13:19
خیلی عالی بود دمت.
پاسخ امین :
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر

برای کپی پیست کردن در متن نظرات کلید shift را نگه دارید و بعد right click کنید.