بعض الشرح عن أمر أو برنامج find

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته


بعض الشرح عن برنامج find .





الأفضل تجربت نقل الأوامر المذكروة في المنشور للترمينال لأن التنسيق سيء على blogger .

كيف ممكن البحث في مجلد ما عن كل الملفات في المجلد نفسه وفي المجلدات الفرعية داخله ؟الجواب من خلال الامر في الأسفل .
find Downloads/ -type f

اولا امر find ويعني بحث ثم طلبت البحث في مجلد إسمه Downloads ثم إخترت النوع f إختصار لي File أي أريد البحث عن الملفات .

كيف ممكن البحث في مجلد ما عن كل الملفات التي تنتهي بشيء محدد مثلا تنتهي بالاحقة py.؟الجواب من خلال الامر في الأسفل .
find Downloads/ -type f -iname "*.py"

الذي أضفناه هنا هو iname- ثم إستخدمت خاصية التوسعة حيث ستقوم النجمة بتمثيل أي شيء أي أنا أقول له أريد أي شيء ينتهي ب py. بالمناسبة ممكن من خلال * وغيرها القيام بالكثير من اﻷمور وممكن وضع النجمة بأي مكان مثال في الأسفل النجمة تمثل أي شيء في نهابة إسم المجلد نلاحظ إستبدلت حرف f بحرف d إختصار ل directory أي أريد كل مجلد يبدأ بحرف m بالمناسبة ممكن أيضا إستخدام name- لاكن سيكون البحث حساس لحالة الأحرف على عكس iname- .
find Downloads/ -type d -iname "m*"

بعد ان عرفنا كيف نحصل على أسماء الملفات التي نريدها هل ممكن معالجتها بشيء مثل نسخها لمكان أخر أو البحث فيها من خلال أمر grep ؟ الجواب نعم مثال في الامر في الأسفل .
find Downloads/ -type f -iname "*.py" -exec grep -il 'arfedora' {} +

بعد الحصول على الملفات التي أريدها طلبت من خلال exec- تشغيل أمر grep للبحث عن كلمة arfedora داخل هذه الملفات وخيار i خاص بأمر grep لتجاهل حالة الأحرف أثناء البحث و خيار l وهو أيضا خاصة بgrep وعمله عرض إسم الملف الذي يحتوي كلمة arfedora ,بالنسبة ل {} تمثل أسماء الملفات التي يجدها find .

امر أخر ذات المبدأ لاكن هناك إختلاف بكيفية التنفيذ.
find . -type f -iname "*.py" -exec echo 10000 {} ';'

اولا ملاحظة النقطة بعد أمر find يمثل المجلد الموجود فيه أنت حاليا وبدل امر grep طلبت طباعة رقم 10000 والسبب أني أريد أن أوضح شيء ,نلاحظ في الأمر في الأعلى سيتم عند كل إجاد إسم ملف تنفيذ أمر echo لطباعة رقم 10000 وسيتم طباعة ما يعوضه find بدل {} شيء كما في الأسفل , بالمناسبة أحطنا علامة ; لأنها تعني شيء اخر للشل اي حتى لا تعتبر أمر خاص بالشل وتتداخل الامور .

echo 10000 myfile1.py
echo 10000 myfile2.py
echo 10000 myfile3.py
echo 10000 myfile4.py

أما الامر في الأسفل الذي إستخدمناه سابقا أي علامة الزائد + في أخره سيقوم find بتجميع أسماء هذه الملفات وعندما ينتهي سينفذ عليهم ولمرة واحدة أمر echo أي شيء كالذي في الأسفل .
find . -type f -iname "*.py" -exec echo 10000 {} +

echo 10000 myfile1.py myfile2.py myfile3.py myfile4.py

بما أن {} تعوض بما يجده find لنفترص أريد نسخ ما يجده لمجلد أخر موجود مسبقا إسمه myfolder على أن لا يكون موجود بذات المجلد الذي نبحث فيه , الامر في الأسفل يقوم بالأمر .

find Documents/ -type f -iname "*.py" -exec cp {} myfolder ';'

أخيرا لمزيد من المعلومات نكتب man find لانه برنامج فيه الكثير من الممبزات مثل البحث حسب الوقت والصلاحيات والحجم وإمكانية القيام بإجراءات على حسب توفر بعض الشروط شيء مثل or and في لغات البرمجة والكثبر من الأمور في الحقيقة لا تستغرب إذا وجدت كتاب يشرح عنه فقط .







شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) 28 (1) 29 (1) 30 (1) 31 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (7) أشياء تفعلها (8) إصدارات (1) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (16) برامج (56) برامج إسلامية (2) برنامج (19) برودباند (1) بعد (7) بعد التثبيت (8) بلوتوث (1) بناء (1) بناء توزيعة (1) بيئة عمل (1) تثبيت (29) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (7) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توزيعة (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) روتر (1) ريدهات (2) سكربت (2) شرح (11) صورة متحركة (1) فايرفوكس (1) فتح منفذ (1) فصل (1) فلاشة (3) فيدورا (29) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (6) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) محمول (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) واجهات (1) وايرلس (1) وهمي (2) ويندوز (2) access token (1) active (2) add (1) after (7) alias (1) andoid studio (1) android (2) android studio (1) Apache (2) appstream (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bls (1) bluetooth (1) book (2) books (2) bootloader fix (1) boxes (3) broadband (1) broadcom (1) broadwayd (1) bugzilla (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) calamares (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (2) chsh (1) cisco (1) clion (1) clone (1) code.org (1) command (2) command line (2) commands (2) comps (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) css (1) curlew (1) custom (2) dbus (3) dconf (1) dd (1) Decryption (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) Digital signature (1) disks (1) dnf (14) do (7) docker (1) dolphine (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (9) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) emulator (1) enable (2) Encryption (1) entries (1) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (45) fedora 25 alpha (1) fedora cloude (1) fedora28 (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) find (1) firefox (2) fix (10) flash mem (1) flash memory (2) flashplayer (1) flatpak (4) forward (1) fpaste (1) free (1) freebsd (1) freevpn (1) function (1) game (3) games (2) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (16) gnome boxes (1) gnome disk (1) gnome shell (13) gnome terminal (1) gnome-disks (1) gnu (1) godot (1) goldendict (1) google web designer (1) gpg (2) gradio (1) group (2) grub (7) grub2 (1) grubenv (1) gstreamer (1) gtk (8) gtk+ (1) gvrecord (1) hack (2) hash (4) hdmi (3) hibernate (1) home (2) hosspot (1) html (1) http (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (32) installf (9) installing (7) intellij idea (1) internet downlaod manager (1) iso (2) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kde (3) kernel (1) kernel parameters (1) key (1) kickstarts (3) korora (1) krita (1) kvm (2) kvm switches (1) lamp (1) laps (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) libvirt (1) life is trange (1) linux (8) lutris (1) lv (1) lvm (2) mac (4) macros (1) mageia (1) make distro (1) mariadb (1) MariaDB and PHP Lamp Server (1) markdown (2) mate terminal (1) mbr (1) md5sum (1) mirro (1) mkconfig (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) mumble (1) murmur (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (8) objdesktop (1) ojuba (2) oop (1) opensuse (1) openvpn (1) opera (1) optirun (2) oracle (1) os.path (1) package (2) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) php (1) phpstorm (1) plasma (2) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) port (1) portable (1) portmatp (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) preset (1) preview (1) primary display (1) primeos (1) primus (1) primusrun (1) private key (1) programs (3) protonvpn (1) pubg (1) public key (1) put (1) pv (1) pycharm (2) pygobject (4) pygtk (5) python (56) pythonk (1) qdbus (1) qemu (3) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (3) remix (1) remix os (1) repo (4) repofrompath (1) repository (1) reset (1) resize2fs (1) rhel (1) router (1) rpm (7) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) screencast (1) script (2) seconday display (1) self (1) send (1) server (1) settings (2) sha1256sym (1) sha256sum (1) share desktop (1) shell (2) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) software (1) soundcloud (1) source code (1) spec (2) spin (1) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) store (1) su (1) sudo (2) sudoers (1) swap (2) switch (2) Switchable Graphics (1) synergy (1) systemd (1) systemd preset (1) teamviewer (1) terminal (2) theme (5) things (7) thomson (1) thread (2) threading (2) thumbnails (1) to (8) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) verify (1) vg (1) vgaوتبديل (1) vi (1) video (1) vim (1) vino (1) virsh (1) virt-install (1) virt-manger (1) virtual (1) virtual box (1) virtualbox (3) vmware (3) vnc server (1) vokoscreen (1) vpn (1) web server (1) webstorm (1) wifi (1) windows (4) windows-1256 (1) wine (1) woeusb (1) X Error: BadAccess (1) X Error: BadDrawable (1) xdg-mime (1) xdman (1) xfce (1) xfconf-query (1) yum (2) zeal (1) zealdocs (1)