როგორ გამოვიყენოთ Find ბრძანება. როგორ მოძებნოთ ფაილები Linux-ში Find ბრძანების გამოყენებით

თქვენ ალბათ იცნობთ ამ პრობლემას: არის ფაილი და არ გახსოვთ სად დადეთ.

ამ შემთხვევაში, პოვნის ბრძანება მოსახერხებელია. Როგორ გამოვიყენოთ ის? რა თქმა უნდა, ამ პროგრამას მოყვება დიდი კაცის გვერდი, მაგრამ ჩვენ განვიხილავთ რამდენიმე ტიპურ შემთხვევას. დაათვალიერეთ დირექტორია ხე, დაწყებული ამჟამინდელით და იპოვეთ lostfile.txt ფაილი:

თუ თქვენ ეძებთ დიდი დირექტორიაში, ბრძანება Find შეიძლება საკმაოდ ნელი იყოს. ზოგჯერ უფრო მოსახერხებელია locate ბრძანების გამოყენება. ის არ ეძებს ფაილს პირდაპირ ფაილურ სისტემაში, მაგრამ ეძებს მის მონაცემთა ბაზას. ეს მეთოდი ბევრად უფრო სწრაფია, მაგრამ მონაცემთა ბაზა შეიძლება მოძველდეს. ზოგიერთ დისტრიბუციაზე ეს მონაცემთა ბაზა ყოველ ღამე განახლდება. დროდადრო შეგიძლიათ ხელით გაუშვათ updatedb ბრძანება მის განახლებისთვის. იპოვნეთ ქვესტრიქონების ძებნა:

დაშვებული ორთოგრაფიული შეცდომების რაოდენობა დამოკიდებულია ფაილის სახელის სიგრძეზე, მაგრამ შეიძლება დაყენდეს -t ოფციით. მაქსიმუმ 2 შეცდომის დასაშვებად და სერვისის სიმბოლოს გამოსაყენებლად, უბრალოდ ჩაწერეთ:

დირექტორია ხის მიმოხილვა

ზოგჯერ საჭიროა დირექტორიის ხის მიმოხილვის მიღება. მაგალითად, თქვენ მიიღეთ ახალი CD-ROM და გსურთ იცოდეთ რა არის მასზე. შეგიძლიათ უბრალოდ გამოიყენოთ ls - R. პირადად, წაკითხვისთვის, მე მირჩევნია ერთი შემდეგი გზები. ხე (sunsite.unc.edu/pub/Linux/utils/file/tree-1.2.tgz) აჩვენებს კატალოგის ხეს დიაგრამის სახით.

ან გამოიყენეთ ძველი კარგი აღმოჩენა. Find-ის Gnu ვერსიაში, რომელიც ჩვეულებრივ იგზავნება Linux-ით, შესაძლებელია გამომავალი ფორმატის შეცვლა, რომ აჩვენოს, მაგალითად, ფაილის სახელი და ზომა:

თქვენ შეგიძლიათ გამოიყენოთ პატარა perl რუტინა, რომელიც მუშაობს ls ბრძანებით ამ სახის საქმის გასაკეთებლად. მისი ჩამოტვირთვა შესაძლებელია აქედან: lsperl.gz. დირექტორიაში ხეების დათვალიერების მრავალი სხვა პროგრამა არსებობს, მაგრამ უმეტეს შემთხვევაში ეს საკმარისია.

ფაილების ძიება შინაარსის მიხედვით (ტექსტური სტრიქონების ძიება ფაილებში).

ფაილებში ტექსტური სტრიქონების მოსაძებნად სტანდარტული საშუალებებია grep/egrep ნორმალური გამოხატვის საძიებლად და fgrep ლიტერატურული სტრიქონების საძიებლად. მიმდინარე დირექტორიაში არსებული ყველა ფაილში გამოხატვის მოსაძებნად, უბრალოდ ჩაწერეთ:

თუ გაგიჭირდებათ ამ გრძელი ბრძანებების დამახსოვრება, გამოიყენეთ პატარა სკრიპტი, რომელიც შეგიძლიათ ჩამოტვირთოთ აქედან: grepfind.gz. სკრიპტი ასევე შლის საძიებო სტრიქონიდან არასაბეჭდად სიმბოლოებს, რათა შემთხვევით არ მიიღოთ ბინარული ფაილი egrep-ის ძიების შედეგად.

უაღრესად საინტერესო პროგრამაძებნა - აგრეპ . Agrep ძირითადად მუშაობს egrep-ის მსგავსად, მაგრამ გაძლევთ საშუალებას მოძებნოთ მართლწერის შეცდომების საფუძველზე. გამოხატვის მოსაძებნად და მაქსიმუმ 2 შეცდომის დასაშვებად, აკრიფეთ:

ამის შემდეგ, თქვენ შეგიძლიათ მოძებნოთ სტრიქონი ყველა ფაილში, რომელიც ადრე იყო ინდექსირებული

glimpse -i -2 "ძებნის გამოხატულება"

glimpse ასევე იძლევა ორთოგრაფიულ შეცდომებს (როგორც აგრეპი) და -2 მიუთითებს, რომ დაშვებულია ორი შეცდომა. glimpse ხელმისაწვდომია

    იპოვეთ ფაილი მისი სახელით.ასეთი უმარტივესი ძებნაშესრულებულია Find უტილიტის გამოყენებით. ქვემოთ მოყვანილი ბრძანება მოძებნის ფაილს მიმდინარე დირექტორიაში და მის ყველა ქვედირექტორიაში.

    find -iname "ფაილის სახელი"

    • შეიყვანეთ -iname-ის ნაცვლად -name, რომ შეყვანილი ფაილის სახელი იგნორირება გაუკეთოთ. -name ბრძანება რეგისტრის მგრძნობიარეა.
  1. დაიწყეთ ძებნა root დირექტორიაში.სისტემის მასშტაბით ძიების დასაწყებად, დაამატეთ მოთხოვნას / მოდიფიკატორი. ამ შემთხვევაში, find ბრძანება მოძებნის ფაილს ყველა დირექტორიაში, დაწყებული root-დან.

    find / -iname "ფაილის სახელი"

    • შეგიძლიათ დაიწყოთ ძიება კონკრეტულ დირექტორიაში; ამისათვის შეცვალეთ / დირექტორიაში ბილიკი, მაგალითად, /home/max.
    • გამოყენება შესაძლებელია. /-ის ნაცვლად მხოლოდ ფაილის მოძიება მიმდინარე დირექტორიაში და მის ქვედირექტორიებში.
  2. გამოიყენეთ wildcard სიმბოლო.* იპოვონ ფაილები, რომელთა სახელი ემთხვევა მოთხოვნის ნაწილს. თქვენ შეგიძლიათ გამოიყენოთ wildcard სიმბოლო *, რათა იპოვოთ ფაილი, რომლის სრული სახელი უცნობია, ან იპოვოთ ყველა ფაილი კონკრეტული გაფართოებით.

    იპოვე /home/max -iname "*.conf"

    • ეს ბრძანება იპოვის ყველა .conf ფაილს მომხმარებლის Max საქაღალდეში (და მის ქვესაქაღალდეში).
    • გამოიყენეთ ეს ბრძანება ყველა ფაილის საპოვნელად, რომელთა სახელები ემთხვევა მოთხოვნის ნაწილს. მაგალითად, თუ თქვენს კომპიუტერს აქვს WikiHow-თან დაკავშირებული ბევრი ფაილი, მოძებნეთ ყველა ფაილი „*wiki*“ აკრეფით.
  3. გააადვილეთ თქვენი ძიების შედეგების მართვა.თუ ძალიან ბევრი ძიების შედეგია, ძნელია მათ შორის პოვნა სასურველი ფაილი. გამოიყენეთ სიმბოლო | ისე, რომ ძიების შედეგები იფილტრება ნაკლები ბრძანებით. ეს გაადვილებს ძიების შედეგების ნახვას და გაფილტვრას.

    იპოვეთ /home/max -inname "*.conf" | ნაკლები

    მოძებნეთ კონკრეტული ნივთები.გამოიყენეთ მოდიფიკატორები ძიების შედეგებში მხოლოდ გარკვეული ელემენტების საჩვენებლად. თქვენ შეგიძლიათ მოძებნოთ ჩვეულებრივი ფაილები (f), დირექტორიები (d), სიმბოლური ბმულები (l), სიმბოლოების I/O მოწყობილობები (c) და ბლოკის მოწყობილობები (b).

    იპოვე / -ტიპი f -iname "ფაილის სახელი"

  4. გაფილტრეთ თქვენი ძიების შედეგები ფაილის ზომის მიხედვით.თუ თქვენს კომპიუტერს აქვს მრავალი ფაილი მსგავსი სახელებით, მაგრამ თქვენ იცით ფაილის ზომა, რომელსაც ეძებთ, გაფილტრეთ თქვენი ძიების შედეგები ფაილის ზომის მიხედვით.

    find / -size +50M -iname "filename"

    • ეს ბრძანება იპოვის ყველა ფაილს, რომელიც აღემატება 50 მბ-ს. გამოიყენეთ + ან - მოდიფიკატორი, რათა მიუთითოთ ზომის ზრდა ან შემცირება. თუ არ არის + ან - მოდიფიკატორი, ბრძანება იპოვის ფაილებს, რომლებიც ზუსტად ემთხვევა მითითებულ ზომას.
    • ძიების შედეგები შეიძლება გაფილტრული იყოს ბაიტით (c), კილობაიტებით (k), მეგაბაიტებით (M), გიგაბაიტებით (G) ან 512 ბაიტიანი ბლოკებით (b). გაითვალისწინეთ, რომ ზემოაღნიშნული მოდიფიკატორები რეგისტრის მგრძნობიარეა.
  5. გამოყენება ლოგიკური ოპერატორები(ლოგიკური ოპერატორები) საძიებო ფილტრების გაერთიანებისთვის.თქვენ შეგიძლიათ გამოიყენოთ -and , -or , -not ოპერატორები განსხვავებულის დასაკავშირებლად საძიებო ტერმინებიერთ თხოვნაში.

    იპოვეთ /მოგზაურობის ფოტოები -ტიპი f -ზომა +200k -არა -inname "*2015*"

    • ეს ბრძანება იპოვის ფაილებს "Travelphotos" საქაღალდეში, რომლებიც 200 KB-ზე მეტია და მათ სახელებში არ არის ნომერი 2015.

ეს არის ნაგულისხმევი მისასალმებელი გვერდი, რომელიც გამოიყენება Apache2 სერვერის სწორი მუშაობის შესამოწმებლად Ubuntu სისტემებზე ინსტალაციის შემდეგ. ის ეფუძნება Debian-ის ეკვივალენტურ გვერდს, საიდანაც მიღებულია Ubuntu Apache შეფუთვა. თუ შეგიძლიათ ამ გვერდის წაკითხვა, ეს ნიშნავს, რომ ამ საიტზე დაინსტალირებული Apache HTTP სერვერი გამართულად მუშაობს. Შენ უნდა შეცვალეთ ეს ფაილი(მდებარეობს /var/www/html/index.html) თქვენი HTTP სერვერის მუშაობის გაგრძელებამდე.

თუ თქვენ ხართ ამ ვებსაიტის ჩვეულებრივი მომხმარებელი და არ იცით რას ეხება ეს გვერდი, ეს ალბათ ნიშნავს, რომ საიტი ამჟამად მიუწვდომელია ტექნიკური მომსახურების გამო. თუ პრობლემა შენარჩუნებულია, გთხოვთ, დაუკავშირდეთ საიტის ადმინისტრატორს.

კონფიგურაციის მიმოხილვა

Ubuntu-ს Apache2-ის ნაგულისხმევი კონფიგურაცია განსხვავდება ზემოთ ნაგულისხმევი კონფიგურაციისგან და იყოფა რამდენიმე ფაილად, რომლებიც ოპტიმიზებულია Ubuntu ინსტრუმენტებთან ურთიერთქმედებისთვის. კონფიგურაციის სისტემა არის სრულად დოკუმენტირებულია /usr/share/doc/apache2/README.Debian.gz-ში. იხილეთ ეს სრული დოკუმენტაციისთვის. თავად ვებ სერვერის დოკუმენტაცია შეგიძლიათ იხილოთ სახელმძღვანელოში წვდომით, თუ ამ სერვერზე დაინსტალირებული იყო apache2-doc პაკეტი.

Ubuntu სისტემებზე Apache2 ვებ სერვერის ინსტალაციის კონფიგურაციის განლაგება შემდეგია:

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.ჩატვირთვა | `-- *.conf |-- conf-ჩართულია | `-- *.conf |-- საიტები ჩართულია | `-- *.კონფ

  • apache2.conf არის მთავარი კონფიგურაციის ფაილი. ის აერთიანებს ნაწილებს, ყველა დარჩენილი კონფიგურაციის ფაილის ჩათვლით ვებ სერვერის გაშვებისას.
  • ports.conf ყოველთვის შედის ძირითადი კონფიგურაციის ფაილიდან. იგი გამოიყენება შემომავალი კავშირებისთვის მოსმენის პორტების დასადგენად და ამ ფაილის მორგება ნებისმიერ დროს შეიძლება.
  • კონფიგურაციის ფაილები mods-enabled/, conf-enabled/ და sites-enabled/ დირექტორიებში შეიცავს კონკრეტულ კონფიგურაციის ფრაგმენტებს, რომლებიც მართავენ მოდულებს, გლობალური კონფიგურაციის ფრაგმენტებს ან ვირტუალური ჰოსტის კონფიგურაციების შესაბამისად.
  • ისინი გააქტიურებულია ხელმისაწვდომი კონფიგურაციის ფაილების სიმბოლური ბმულით მათი შესაბამისი *-available/ კოლეგებიდან. მათი მართვა უნდა მოხდეს ჩვენი დამხმარეების გამოყენებით: a2enmod, a2dismod, a2ensite, a2dissite და a2enconf, a2disconf. დეტალური ინფორმაციისთვის იხილეთ მათი შესაბამისი კაცის გვერდები.
  • ორობითს ეწოდება apache2. გარემოს ცვლადების გამოყენების გამო, ნაგულისხმევ კონფიგურაციაში, apache2 უნდა დაიწყოს/შეწყდეს /etc/init.d/apache2 ან apache2ctl-ით. პირდაპირ /usr/bin/apache2-ზე დარეკვა არ იმუშავებსნაგულისხმევი კონფიგურაციით.

დოკუმენტის ფესვები

ნაგულისხმევად, Ubuntu არ იძლევა წვდომას ვებ ბრაუზერის საშუალებით ნებისმიერიფაილი გარდა იმ ფაილებისა, რომლებიც მდებარეობს /var/www , public_html დირექტორიაში (როდესაც ჩართულია) და /usr/share (ვებ აპლიკაციებისთვის). თუ თქვენი საიტი იყენებს ვებ-დოკუმენტის ფესვს, რომელიც მდებარეობს სხვაგან (როგორიცაა /srv), შეიძლება დაგჭირდეთ თქვენი დოკუმენტის root დირექტორიაში შეყვანა თეთრ სიაში /etc/apache2/apache2.conf.

Ubuntu დოკუმენტის ნაგულისხმევი ფესვი არის /var/www/html. თქვენ შეგიძლიათ შექმნათ თქვენი საკუთარი ვირტუალური ჰოსტები /var/www. ეს განსხვავდება წინა რელიზებისგან, რაც უზრუნველყოფს უკეთეს უსაფრთხოებას.

პრობლემების მოხსენება

გთხოვთ, გამოიყენოთ ubuntu-bug ინსტრუმენტი, რათა შეატყობინოთ შეცდომები Apache2 პაკეტში Ubuntu-სთან ერთად. თუმცა, შეამოწმეთ ახალი შეცდომის შესახებ მოხსენებამდე.

გთხოვთ, შეატყობინოთ მოდულების (როგორიცაა PHP და სხვა) სპეციფიკური შეცდომები მათ შესაბამის პაკეტებს და არა თავად ვებ სერვერს.

უდავოა, რომ Linux-თან მუშაობისას ზოგჯერ ეს ხდება საჭირო ფაილის ძებნაგარკვეული მახასიათებლებით. ეს მახასიათებლები შეიძლება იყოს ფაილის ზომა ან ტიპი, წვდომის უფლებები და სხვა.


ხელმისაწვდომობა in Linux ბრძანებები იპოვეძალიან ეხმარება გამკლავებაში ფაილის ძებნასხვადასხვა კრიტერიუმების მიხედვით.


დღეს ჩვენ გავაანალიზებთ მოძებნეთ ფაილები ლინუქსშიდა მიეცით ძირითადი ბრძანების პარამეტრები იპოვერომ შეგიძლიათ გამოიყენოთ თქვენს საქმიანობაში.

ბრძანების ფორმატი იპოვე:

იპოვეგზა-პარამეტრები

სადაც გზაარის საძიებო დირექტორია. თქვენ შეგიძლიათ მიუთითოთ შემდეგი მნიშვნელობები ბილიკისთვის:

. - მოძებნეთ მიმდინარე დირექტორიაში;

/ - ძიება root დირექტორიადან;

~ - მოძებნეთ სახლის დირექტორიაში.

რაც შეეხება ვარიანტებს, აქ არის ბევრად უფრო დიდი სია, რომლის გულდასმით წაკითხვაც უაღრესად აუცილებელია (ეს ძალიან დაგვეხმარება მომავალში!). Ისე, Find ბრძანების ძირითადი ვარიანტები:

-სახელი- მოძებნეთ ფაილები სახელის მიხედვით მოცემული შაბლონის გამოყენებით;

- მომხმარებელი- მოძებნეთ ფაილები, რომლებიც ეკუთვნის მითითებულ მომხმარებელს;

- ჯგუფი- მოძებნეთ ფაილები, რომლებიც მიეკუთვნება მითითებულ ჯგუფს;

-პერმი- მოძებნეთ ფაილები მითითებული წვდომის რეჟიმით;

-ტიპი- მოძებნეთ გარკვეული ტიპის ფაილები. ტიპებიც საკმარისია:

  • ბ - სპეციალური ბლოკის ფაილი;
  • d - დირექტორია;
  • c არის სპეციალური სიმბოლოების ფაილი;
  • ვ - რეგულარული ფაილი;
  • ლ - სიმბოლური ბმული;
  • p - დასახელებული მილი;
  • s - სოკეტი.
- ზომა- მოძებნეთ ფაილები ზომის n ერთეულით;

-mtime -n +n- მოძებნეთ ფაილები, რომელთა შინაარსი შეიცვალა (-) ან მეტი (+) დღის წინ.

განვიხილოთ ზოგიერთი ბრძანების გამოყენების მაგალითები იპოვე :

ყველაზე ხშირად გამოყენებული ვარიანტი არის ვარიანტი -სახელი, რომელიც ეძებს ფაილებს სახელის მიხედვით.

მაგალითები -name ოფციით :

$ იპოვეთ /mnt/usb -სახელი "*.mp3" -ბეჭდვა

მოძებნის ყველა ფაილს (მითითებულია * ნიშნით), რომლებსაც აქვთ .mp3 გაფართოება USB მოწყობილობაზე, რომელიც დამონტაჟებულია /mnt/usb დირექტორიაში.

$ იპოვეთ ~ -სახელი "ტესტი*" -ბეჭდვა

აჩვენებს ფაილების სიას სახლის დირექტორიაში, რომელიც იწყება ტესტით.

თუ თქვენ გჭირდებათ გარკვეული ასოებით დაწყებული ფაილების პოვნა (მაგალითად, a-დან j-მდე), მაშინ მოსახერხებელი იქნება აქ გამოიყენოთ რეგულარული გამონათქვამები, რომლებთან მუშაობა ძალიან მოსახერხებელია:

$ პოვნა / -სახელი "*" -ბეჭდვა

ზემოთ მოყვანილი ბრძანება იპოვის სისტემაში არსებულ ყველა ფაილს, დაწყებული ასოებით a-დან j-მდე.

ფაილების მოძიება კონკრეტული წვდომის რეჟიმებით

თუ თქვენ გჭირდებათ ფაილების პოვნა, რომლებსაც აქვთ წვდომის გარკვეული რეჟიმი, შეგიძლიათ გამოიყენოთ ეს ვარიანტი -პერმირაც მარტივად დაგეხმარება.

მაგალითად, მოდით მოძებნოთ ფაილები წვდომის რეჟიმით 775 (მფლობელს და ჯგუფს აქვს სრული უფლებები, სხვა მომხმარებლებს აქვთ ჩაწერის შეზღუდვები), რომლებიც მდებარეობს მიმდინარე დირექტორიაში:

$ იპოვე. -პერმი 775 -ბეჭდვა

ძიებასთან ერთად იპოვე-perm ოფციით, შეგიძლიათ გამოიყენოთ სხვა გზა - შეგიძლიათ დააყენოთ დეფისი რეჟიმის მნიშვნელობის წინ და შემდეგ განხორციელდება ფაილების ძებნა, რომლებისთვისაც მითითებულია ყველა მითითებული ნებართვის ბიტი. უფრო მეტიც, ამ შემთხვევაში დარჩენილი ბიტები იგნორირებულია.

მაგალითად, მოდი ვიპოვოთ ფაილები, რომლებზეც ჯგუფის მომხმარებლებს აქვთ სრული წვდომა:

$ იპოვე. -პერმი -070 -ბეჭდვა

დეფისის ნაცვლად შეგიძლიათ მიუთითოთ პლუს ნიშანი. ამ შემთხვევაში, ის მოძებნის ფაილებს, რომლებსაც აქვთ მინიმუმ ერთი მითითებული ნებართვის ბიტი. დანარჩენი ბიტები იგნორირებულია.

მოძებნეთ კონკრეტული მომხმარებლის ან ჯგუფის ფაილები

კონკრეტული მომხმარებლის ფაილების ძებნა მისი განხორციელებისას ძალიან მარტივია. ამისათვის უბრალოდ გაუშვით ბრძანება:

$ პოვნა / -მომხმარებლის ადმინისტრატორი -ბეჭდვა

ზემოთ მოყვანილი ბრძანება გამოიმუშავებს ფაილის ძებნაადმინისტრატორის საკუთრებაში არსებულ სისტემაზე.

იმისათვის, რომ იპოვოთ ფაილები, რომლებიც მიეკუთვნება კონკრეტულ ჯგუფს (მაგალითად, მენეჯერები), გაუშვით ბრძანება:

$ მოძებნა / -ჯგუფის მენეჯერები -ბეჭდვა

არარსებული მომხმარებლების ან ჯგუფების ფაილების მოსაძიებლად შეგიძლიათ გამოიყენოთ ოფციები -ანუსერდა -არაჯგუფი:

$ პოვნა / -nouser -ბეჭდვა

$ პოვნა / -არაჯგუფი -ბეჭდვა

მოძებნეთ კონკრეტული ტიპის ფაილები

ბრძანების ერთ-ერთი მოსახერხებელი თვისება იპოვე, არის კონკრეტული ტიპის ფაილების ძებნის შესაძლებლობა. განიხილეთ ვარიანტის გამოყენების ვარიანტები -ტიპი:

სიმბოლური ბმულების ძიება /etc დირექტორიაში:

$ იპოვე /etc -ტიპი l -ბეჭდვა

/mnt/raid დირექტორიაში არსებული დირექტორიების სიის ჩვენება

$ იპოვე /mnt/Raid -type d -print

მოძებნეთ კონკრეტული ზომის ფაილები

ვარიანტი - ზომასაშუალებას გაძლევთ მოძებნოთ გარკვეული ზომის ფაილები და ასე გამოიყურება შესრულებისას:

$ იპოვე. -ზომა 2000k - ბეჭდვა

ზემოთ მოყვანილი ბრძანება იპოვის და აჩვენებს ეკრანზე მიმდინარე დირექტორიაში მდებარე 2 მეგაბაიტიან ფაილს. თუ, მაგალითად, გჭირდებათ 500 კილობაიტზე ნაკლები ზომის ფაილების პოვნა, მაშინ ბრძანება ასე გამოიყურება:

$ იპოვე. -ზომა -500k -ბეჭდვა

თუ თქვენ გჭირდებათ 600 მეგაბაიტზე დიდი ზომის ფაილების პოვნა, გამოიყენეთ ბრძანება:

$ პოვნა / -ზომა +600M -ბეჭდვა

ფაილების ძიება -mtime პარამეტრის გამოყენებით

ვარიანტი -მჯერსაშუალებას მოგცემთ იპოვოთ ფაილები, რომლებიც დროთა განმავლობაში შეიცვალა.

მაგალითად, ჩვენ დაგვხვდა ამოცანა მოძებნოთ ფაილები, რომლებიც მდებარეობს /mnt/raid/upload დირექტორიაში, რომლებიც შეიცვალა ბოლო 5 დღის განმავლობაში. ეს ბრძანება დაგვეხმარება:

$ იპოვნეთ /mnt/raid/upload -mtime -5 -print

თუ საპირისპირო გვჭირდება, მაგალითად, ვიპოვოთ ფაილები, რომლებიც არ შეცვლილა ერთი კვირის განმავლობაში, ვიყენებთ ბრძანებას:

$ იპოვნეთ /mnt/raid/upload -7 -ბეჭდვა

გუნდი იპოვეარის უკიდურესად მოსახერხებელი ხელსაწყოამისთვის ფაილის ძებნადა ასევე შეიძლება გამოყენებულ იქნას ფაილის ძებნა NFS დისკებზე (ქსელის ფაილური სისტემები), მაგრამ ამ შემთხვევაში გასათვალისწინებელია, რომ NFS-ზე რაღაცის ძიებას გაცილებით მეტი დრო დასჭირდება, ვიდრე ლოკალურ დისკებზე.

ამ სტატიაში ჩვენ განვიხილეთ Find ბრძანების მხოლოდ ძირითადი ვარიანტები, რომლებიც დაგეხმარებათ მუშაობაში. გამოიყენეთ ის, რაც მოსახერხებელია და არ ინერვიულოთ წვრილმანებზე!

ფაილების ძებნის აუცილებლობა შეიძლება წარმოიშვას თითქმის ყველა ოპერაციულ სისტემაში, რომელთანაც მუშაობის საშუალებას გაძლევთ ფაილების სისტემა. ჩვენთვის კლასიკური მაგალითია ოპერაციული სისტემა Linux, რომელსაც გამოვიყენებთ კონსოლის რეჟიმში. მოდით შევხედოთ სისტემაში ფაილების ძიების შესაძლებლობებს კონსოლის საშუალებით. ლინუქსის სისტემაში ფაილების მოსაძიებლად არსებობს ბრძანება Find, რომელიც საშუალებას გაძლევთ განახორციელოთ საკმაოდ მოქნილი ძებნა, რაც საშუალებას გაძლევთ მიუთითოთ დამატებითი ძიების კრიტერიუმები. მოდით განვიხილოთ ამ ბრძანების შესაძლებლობები უფრო დეტალურად.

იპოვნეთ ბრძანების სინტაქსი:

იპოვნეთ ბილიკი - ოფციები

ბილიკი განსაზღვრავს დირექტორიას, რომელშიც უნდა მოძებნოთ. მაგალითად, ეს შეიძლება იყოს მნიშვნელობები, როგორიცაა:
. - მიმდინარე დირექტორია
/ - root დირექტორია
~ - მთავარი დირექტორია

ბილიკის დაზუსტების შემდეგ, ასე მითითებულია ძიების პარამეტრები. დამაბნეველად გამოიყურება, მაგრამ სინამდვილეში სირთულეები არ არის.

ძირითადი პარამეტრები:
-სახელი- ძებნა სახელით, ძებნის ნიმუში დაყენებულია;
- მომხმარებელი- მოძებნეთ ფაილები, რომლებიც ეკუთვნის კონკრეტულ მომხმარებელს;
- ჯგუფი- მოძებნეთ ფაილები, რომლებიც მიეკუთვნება კონკრეტულ ჯგუფს;
-პერმი- ფაილების ძებნა წვდომის რეჟიმით;
-ტიპი- მოძებნეთ ფაილები ტიპის მიხედვით, ტიპების სია:

  • - სპეციალური ბლოკის ფაილი;
  • - კატალოგი;
  • - სპეციალური სიმბოლოების ფაილი;
  • - ნორმალური ფაილი;
  • - სიმბოლური ბმული;
  • გვ- დასახელებული მილი;
  • - სოკეტი.

- ზომა- მოძებნეთ ფაილები ზომის n ერთეულით;
-mtime -n +n- მოძებნეთ ფაილები მოდიფიკაციის თარიღის მიხედვით, ნაკლები (-) ან მეტი (+) დღის წინ.

შევეცადოთ მოძებნოთ ფაილები, სხვადასხვა სიტუაციების სიმულაცია.
მოდი ვიპოვოთ ფაილები USB-ზე დაკავშირებულ და სისტემაში წინასწარ დამაგრებულ მოსახსნელ მოწყობილობაზე.

მოძებნეთ ფაილები გაფართოების მიხედვით:

$ find /mnt/usb -name "*.mp3" -ბეჭდვა

ეს ბრძანება მოიძიებს დირექტორიას /mnt/usbარის დირექტორია, სადაც მოწყობილობა დამონტაჟებულია. ძიება განხორციელდება ყველა ფაილზე (*) გაფართოებით .mp3.
საძიებო ნიღაბი შეიძლება შეიცვალოს საკმაოდ მოქნილად, მაგალითად, შეგიძლიათ დააყენოთ საკვანძო სიტყვა, რომლითაც იწყება ფაილის სახელი და მოძებნოთ იგი.

მოძებნეთ ფაილები საწყისი საკვანძო სიტყვით:

$ find ~ -name "config*" --ბეჭდვა

ეს აჩვენებს ნაპოვნი ფაილების სიას დაწყებული საკვანძო სიტყვა კონფიგურაცია.
Ერთ - ერთი ძლიერი მხარეებიბრძანებები არის რეგულარული გამოთქმის მიხედვით ძებნის შესაძლებლობა. დემონსტრირებისთვის, მოძებნოთ ფაილები, რომლებიც იწყება ლათინური ასოებით "a"-დან "j"-მდე.

მოძებნეთ ფაილები რეგულარული გამოხატვის ნიმუშით:

$ find / -name "*" --ბეჭდვა

მითითებული ნიმუშის მიხედვით, სისტემაში არსებული ყველა ფაილი, დაწყებული ასოებით "a"-დან "j"-მდე მოიძებნება.

ვინც მეტ-ნაკლებად იცნობს Linux სისტემებს, იცის, რომ ფაილზე წვდომის რეჟიმები ძალიან მნიშვნელოვანია. ზოგჯერ თქვენ უნდა იპოვოთ ფაილები, რომლებსაც აქვთ კონკრეტული ნებართვები, ამ მიზნით შეგიძლიათ გამოიყენოთ ძებნა პარამეტრით -პერმი.

მოძებნეთ ფაილები წვდომის რეჟიმით 755:

$ იპოვე. -პერმი 775 --ბეჭდვა

ანალოგიურად, შეგიძლიათ გააკეთოთ უფრო მოქნილი ძებნა. მოდით ვიპოვოთ ფაილები მომხმარებელთა ჯგუფის მიხედვით, რომლებსაც აქვთ სრული წვდომა.

მოძებნეთ ფაილები ჯგუფისთვის ნებართვით:

$ იპოვე. -პერმი -070 --ბეჭდვა

დეფისის ნიშანი შეიძლება შეიცვალოს პლუსის ნიშნით, ეს მოძებნის ფაილებს, რომლებსაც აქვთ მინიმუმ ერთი მოცემული ნებართვის ბიტი დაყენებული, დანარჩენი ბიტები იგნორირებული იქნება.

შემდეგ მაგალითში განიხილეთ ფაილების ძიება, რომლებიც ეკუთვნის კონკრეტულ მომხმარებელს ან ჯგუფს.

მოძებნეთ კონკრეტული მომხმარებლის ფაილები:

$ პოვნა / -მომხმარებლის ადმინისტრატორი --ბეჭდვა

ძიება იპოვის მომხმარებლის საკუთრებაში არსებულ ფაილებს ადმინისტრატორი.

მოძებნეთ ფაილები, რომლებიც ეკუთვნის კონკრეტულ მომხმარებელთა ჯგუფს:

$ პოვნა / -ჯგუფური ბოტები --ბეჭდვა

მოიძებნება ფაილები, რომლებიც ეკუთვნის მომხმარებელთა ჯგუფს ბოტები. გარდა ამისა, შეგიძლიათ მოძებნოთ ფაილები, რომლებსაც ფლობენ არარსებული მომხმარებლები ან ჯგუფები:

$ find / -nouser –print $ find / -nogroup –print

ასევე მნიშვნელოვანი ფუნქციაა გარკვეული ტიპის ფაილების ძებნის შესაძლებლობა. მაგალითად, თუ საჭიროა ყველა სიმბოლური ბმულის პოვნა კონკრეტულ დირექტორიაში.

მოძებნეთ სიმბოლური ბმულები:

$ find /etc -type l --print

ძიება განხორციელდება დირექტორიაში /etc, რომელშიც შეირჩევა ყველა სიმბოლური ბმული.

ზოგჯერ საჭიროა ნებისმიერ დირექტორიაში ჩასმული დირექტორიების სიის ნახვა, ასეთი ამოცანებისთვის არის შემდეგი ბრძანება.

იხილეთ ჩადგმული დირექტორიები დირექტორიაში:

$ find /mnt/usb -type d --print

ეკრანზე გამოჩნდება დირექტორიაში არსებული დირექტორიების სია. /mnt/usb. ახლა მოდით გადავიდეთ შემდეგ ვარიანტზე, ეს არის განსაზღვრული ზომის ფაილების მოძებნის შესაძლებლობა.

მოძებნეთ ფაილები ზომის მიხედვით:

$ იპოვე. -ზომა 2000k - ბეჭდვა

მოძიებული იქნება 2000 კილობაიტის ზომით ფაილები, ასევე შესაძლებელია ზომების მითითება მეგაბაიტებში, ამისთვის ასო "k"-ის ნაცვლად უნდა მიეთითოს ასო "M".

როგორც შემდეგი მაგალითი, ჩვენ გამოვიყენებთ ფაილების მოძიების შესაძლებლობას მათი მოდიფიცირების დროით. ამ მიზნით, ჩვენ გამოვიყენებთ ვარიანტს -მჯერ.

მოძებნეთ ბოლო 2 დღის განმავლობაში შეცვლილი ფაილები:

$ find /var/www/html -mtime +2 --ბეჭდვა

ძიება განხორციელდება დირექტორიაში /var/www/htmlდა მოიძებნება ფაილები, რომლებიც შეიცვალა ბოლო 2 დღის განმავლობაში. ალბათ ერთ-ერთი ყველაზე მნიშვნელოვანი და მოსახერხებელი საძიებო ვარიანტი. თქვენ ასევე შეგიძლიათ მოძებნოთ ცვლილების თარიღის მიხედვით საპირისპირო პირობით. შევეცადოთ ვიპოვოთ ფაილები დირექტორიაში, რომლებიც არ შეცვლილა 5 დღის განმავლობაში.

მოძებნეთ ფაილები, რომლებიც არ შეცვლილა 5 დღის განმავლობაში:

$ find /var/www/html -5 --ბეჭდვა

ამ დროისთვის სულ ეს არის, იმედი მაქვს, რომ ეს მაგალითები დაგეხმარათ ამ ბრძანებასთან გამკლავებაში. მისი მოხერხებულობა ნათლად არის წარმოდგენილი და მისი შესაძლებლობების შესახებ ცოდნა არ იქნება ზედმეტი, განსაკუთრებით თუ აპირებთ მუშაობას Linux სისტემა. ფაილების კომპეტენტური ძიების უნარები დაზოგავს თქვენს პირად დროს და მოგეხსენებათ, დრო ფასდაუდებელია. წარმატებები სამსახურში!