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

მთავარი / მყარი დისკები

ძიების პრობლემა საჭირო ფაილებიან საქაღალდეები იყო, არის და ყოველთვის იქნება შესაბამისი. ადამიანებს მუდმივად ავიწყდებათ სად შეინახეს ფაილი, რომელიც სჭირდებოდათ Crap.doc, ან Super-music.mp3. ამიტომ, მიუხედავად თქვენი ოპერაციული სისტემა, ფაილების ან დირექტორიების ძიება ყოველთვის იქნება მოთხოვნადი, იქნება ეს Linux-ზე, Windows-ზე თუ MacOS X-ზე. საძიებო ინსტრუმენტები უბრალოდ განსხვავებული იქნება. Linux-ში ძიება შეიძლება დაიყოს ორ კატეგორიად: გრაფიკული და კონსოლური. დავიწყოთ ყველა ლუნიქსოიდის სიამაყით - ტერმინალით. ლინუქსის საძიებლად მშვენიერი პროგრამაა ე.წ იპოვე.
Find ბრძანების ფორმატი არის:
იპოვნეთ გზა დირექტორიაში, რომელშიც გსურთ მოძებნოთ - პარამეტრები (გასაღებები)
სადაც გზა არის დირექტორია, რომელშიც უნდა მოძებნოთ. შემდეგი ბილიკები შეიძლება განისაზღვროს:

.
– მოძებნეთ მიმდინარე დირექტორიაში;
/ – ძიება root დირექტორიადან, ე.ი. მთელ სისტემაში;
~ – ძიება მთავარ დირექტორიაში.

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

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

  • ასევე არსებობს უამრავი სახეობა:
  • ბ – სპეციალური ბლოკის ფაილი;
  • დ – დირექტორია;
  • გ – სპეციალური სიმბოლო ფაილი;
  • ვ – რეგულარული ფაილი;
  • ლ – სიმბოლური ბმული;
  • p – დასახელებული მილი;

s – სოკეტი.
ზომა n - მოძებნეთ ფაილები, რომელთა ზომაა n ერთეული;

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

მაგალითად, ბრძანება:

იპოვეთ ~ Music -სახელი "*.mp3"

მოძებნის ყველა ფაილს (სიმბოლო *), რომელსაც აქვს გაფართოება .mp3 Music საქაღალდეში, რომელიც მდებარეობს თქვენს Home დირექტორიაში.

იპოვე / -სახელი "*.pdf"

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

sudo find / -name "*.pdf"

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

`-name' გადამრთველი განასხვავებს დიდ და პატარა ასოებს; ძიების დროს ამ კრიტერიუმების უგულებელყოფისთვის, თქვენ უნდა გამოიყენოთ '-iname' ვარიანტი. შემდეგ პროგრამა იპოვის ყველა ფაილს, რომელიც შედგება ასოებისგან: Foto, foto ან FOTO.

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

იპოვეთ ~ -name "Foto*" > results.txt

თუ იცით ფაილის სრული სახელი, მაშინ ბრძანება იქნება:

find / -name .profile

IN ამ შემთხვევაშიმთელი სისტემა მოიძებნება დამალული .profile ფაილისთვის.

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

იპოვნეთ /home/dm/Music/Clips/ -სახელი "*uniform*"

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

პოვნა / -სახელი "*"

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

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

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

იპოვე . -პერმი 775

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

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

პოვნა / -მომხმარებლის კომპ

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

იპოვე / -ჯგუფი ჯგუფი2

არარსებული მომხმარებლების ან ჯგუფების ფაილების მოსაძებნად, თქვენ უნდა გამოიყენოთ -nouser და -nogroup პარამეტრები:

პოვნა / -nouser

პოვნა / -არაჯგუფი

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

Find ბრძანებას აქვს კიდევ ერთი სასარგებლო ფუნქცია, მას შეუძლია იპოვოთ კონკრეტული ტიპის ფაილები. ამისათვის გამოიყენეთ -type switch. მოდით ვიპოვოთ სიმბოლური ბმულები /etc დირექტორიაში:

იპოვე /etc -ტიპი l

მოდი ვიპოვოთ დირექტორიების სია, რომლებიც იმყოფება /mnt/raid საქაღალდეში

იპოვე /mnt/raid -type d

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

-size შეცვლა საშუალებას გაძლევთ იპოვოთ თქვენთვის საჭირო ზომის ფაილები.

იპოვე . - ზომა 2000K

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

იპოვე . -ზომა -500კ

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

პოვნა / -ზომა +900მ

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

-mtime შეცვლა საშუალებას გაძლევთ იპოვოთ ფაილები, რომლებიც შეიცვალა გარკვეული პერიოდის განმავლობაში.
მაგალითად, ჩვენ გვაქვს დავალება ვიპოვოთ ფაილები, რომლებიც მდებარეობს /home/dm/Video საქაღალდეში და რომლებიც შეიცვალა ბოლო 10 დღის განმავლობაში.

იპოვეთ /home/dm/Video -mtime +10

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

იპოვე /home/dm/Video -7

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

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

Find ბრძანების გამოყენების მარტივი მაგალითი

პირველ რიგში, მოდით შევხედოთ Find ბრძანების გამოყენების მარტივ მაგალითს თქვენს კომპიუტერში ფაილების მოსაძებნად, სახელწოდებით config. ჩვენ ვეძებთ კონფიგურაციის ფაილებს root დირექტორიადან /. ამისათვის თქვენ უნდა გაუშვათ ბრძანება root-ის სახით, რომ გქონდეთ საკმარისი ნებართვები, წინააღმდეგ შემთხვევაში თქვენ მიიღებთ შეტყობინებებს "ნებართვა უარყოფილია". მოდით გავუშვათ ბრძანება:

იპოვნეთ / -name config -print

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

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

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

იპოვეთ [გზა] [ოფციები] [ძებნის კრიტერიუმები] [მოქმედებები ფაილებზე]

ბილიკი

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

ოფციები

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

ძებნის კრიტერიუმები

Find ბრძანებას შეიძლება ჰქონდეს მრავალი საძიებო კრიტერიუმი (ასევე უწოდებენ ტესტებს). თითოეული კრიტერიუმი წარმოადგენს სპეციფიკურ სატესტო პირობას, რომელიც აბრუნებს ჭეშმარიტს ან მცდარს. ეს შეიძლება შევადაროთ if განცხადების პირობებს პროგრამირებაში. როდესაც ის ამუშავებს თითოეულ ფაილს, Find ბრძანება რიგრიგობით ამოწმებს თითოეულ კრიტერიუმს და თუ შემდეგი კრიტერიუმი დააბრუნებს false-ს, მაშინ find ბრძანება გადადის შემდეგ ფაილზე. Find ბრძანებას აქვს საკმაოდ ბევრი კრიტერიუმი, ჩვენ განვიხილავთ მხოლოდ რამდენიმე მათგანს.

-ატიმე ნფაილზე წვდომა ბოლოს N დღის წინ მოხდა.
- დროზე ნფაილი ბოლოს შეიცვალა N დღის წინ.
- სახელის ნიმუშიფაილის სახელი (სახელის ნიმუში) ბილიკის მითითების გარეშე. რეკომენდირებულია ნიმუში ყოველთვის ჩასვათ ბრჭყალებში.
-უფრო ახალი სხვა_ფაილიფაილი შეიცვალა მოგვიანებით, ვიდრე other_file.
- ზომა [±] Nფაილის ზომა არის N ბლოკი, თუ მითითებულია +N, მაშინ ფაილის ზომა N-ზე მეტია, -N ნაკლებია. სიმბოლო N-ის შემდეგ მიუთითებს ბლოკის ზომაზე. b - 512 ბაიტი, c - ბაიტი, w - 2 ბაიტი, k - კილობაიტი, M - მეგაბაიტი, G - გიგაბაიტი.
- ტიპი Cფაილის ტიპი C. ყველაზე ხშირად გამოყენებული მნიშვნელობები C-სთვის: d - დირექტორია, f - ფაილი.
-მომხმარებლის მომხმარებლის_სახელიფაილი ეკუთვნის მომხმარებლის სახელად UserName.

Find ბრძანების გამოყენების მაგალითები კრიტერიუმების გამოყენებით

იპოვეთ რეგულარული ფაილები (არა დირექტორიები) მიმდინარე დირექტორიაში, რომელთა სახელები იწყება "~" სიმბოლოთი.

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

იპოვეთ ფაილები მიმდინარე დირექტორიაში, რომლებიც ახლახან შეიცვალა ვიდრე file.bak.

იპოვე. -უფრო ახალი file.bak -ტიპი f -ბეჭდვა

ოპერატორები

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

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

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

იპოვეთ ფაილები მიმდინარე დირექტორიაში, რომლებიც იწყება სიმბოლოთი "~" ან "temp" და არის ჩვეულებრივი ფაილები (-ტიპი f), და არა დირექტორიები.

იპოვე. \(-name "~*" -ან -სახელი "temp*" \) -ტიპი f -print

იპოვნეთ მიმდინარე დირექტორიაში (ქვედამუშავების გარეშე - -maxdeph 1) ჩვეულებრივი ფაილები (-ფაილი f) 600 მეგაბაიტზე მეტი და 1 გიგაბაიტზე ნაკლები (-ზომა) ან ფაილები, რომელთა სახელი მთავრდება „.mpeg“-ით (-name).

იპოვე. -maxdepth 1 \(\(-size +600M -and -size -1G \) -ან -სახელი "*.mpeg" \) -და -აკრიფეთ f

მოქმედებები ფაილებზე

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

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

მოქმედებების გამოყენებით find ბრძანების გამოყენების მაგალითები

იპოვეთ 1000 ბაიტზე დიდი ზომის რეგულარული ფაილები მიმდინარე დირექტორიაში და გაუშვით მათზე ls -dils ბრძანება (ls action).

იპოვე. -ზომა +1000c -ტიპი f -ls

იპოვეთ რეგულარული ფაილები მიმდინარე დირექტორიაში, დაწყებული ტილდის სიმბოლოთი "~" და თითოეული ფაილისთვის გასცეს მოთხოვნა მისი წაშლის შესახებ (შეასრულეთ rm ბრძანება).

იპოვე. -სახელი "~*" -ტიპი f -ok rm () \;

დასკვნა

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

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

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

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

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

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

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

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

    იპოვეთ /home/max -inam "*.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 კბაიტზე მეტია და მათ სახელებში არ არის ნომერი 2015.

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

მოძებნეთ სახელით

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

იპოვეთ სახელი "სახელი"

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

სახელის საძიებლად, რეგისტრის გარეშე, შეიყვანეთ:

იპოვე -inname "name"

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

იპოვეთ -არა -სახელი "გამორიცხული სახელი"

იპოვე\! -სახელი "გამორიცხვის სახელი"

ძებნა ტიპის მიხედვით

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

იპოვეთ -type type_descriptor მოთხოვნა

აქ არის ყველაზე გავრცელებული ტიპის აღწერები:

ვ:რეგულარული ფაილი
: დირექტორია
ლ:სიმბოლური ბმული
გ:პერსონაჟების მოწყობილობები
ბ:მოწყობილობების დაბლოკვა

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

და ამ გზით ჩვენ შეგვიძლია მოვძებნოთ ყველა ფაილი, რომელიც მთავრდება „.conf“-ით:

იპოვეთ / -type f -name "*.conf"

მოძებნეთ დროისა და ზომის მიხედვით

Find გთავაზობთ უამრავ გზას შედეგების ზომისა და დროის მიხედვით გასაფილტრად.

მოძებნეთ ზომის მიხედვით

ზომის მიხედვით გაფილტვრა ხდება "-size" პარამეტრის გამოყენებით.

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

გ:ბაიტები
k:კილობაიტები
M:მეგაბაიტები
G:გიგაბაიტი
ბ:ბლოკები 512 ბაიტი

ზუსტად 100 ბაიტის ზომის ყველა ფაილის საპოვნელად, შეიყვანეთ:

იპოვეთ / -ზომა 100c

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

იპოვეთ / -ზომა -100c

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

იპოვეთ / -ზომა +500 მ

დროით ძიება

Linux ინახავს წვდომის დროს, მოდიფიკაციის დროს და მოდიფიკაციის დროს.

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

ამ მნიშვნელობებით გასაფილტრად, ჩვენ შეგვიძლია გამოვიყენოთ ოფციები "-atime", "-mtime" და "-ctime", შესაბამისად, ასევე პლუს და მინუს სიმბოლოები, რათა ვიპოვოთ ფაილები უფრო ადრე ან გვიან დროში, ფილტრაციის მსგავსი. ზომა.

ამ პარამეტრების მნიშვნელობა მიუთითებს რამდენი დღის წინ უნდა განხორციელდეს ძებნა.

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

იპოვეთ / -mtime 1

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

იპოვე / -atime -1

ფაილების მოსაძიებლად, რომელთა მეტამონაცემები შეიცვალა სამ დღეზე მეტი ხნის წინ, გამოიყენეთ შემდეგი ბრძანება:

იპოვე / -ctime +3

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

იპოვეთ / -mmin -1

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

იპოვნეთ / -უფრო ახალი myfile

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

"-user" და "-group" პარამეტრების გამოყენებით, შეგიძლიათ მოძებნოთ ფაილები შესაბამისად მფლობელის ან ჯგუფის მიხედვით. მომხმარებლის "syslog" ფაილის საპოვნელად, თქვენ უნდა შეიყვანოთ:

იპოვნეთ / -მომხმარებლის სისტემის ჟურნალი

ანალოგიურად, შეგიძლიათ მოძებნოთ ფაილები "ჩრდილოვანი" ჯგუფში:

იპოვნეთ / -ჯგუფური ჩრდილი

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

თუ ჩვენ გვჭირდება ნებართვების ზუსტი ნაკრების შედარება, გამოიყენება შემდეგი ფორმა:

იპოვე / -perm 644

თუ თქვენ უნდა იპოვოთ ყველა ფაილი გარჩევადობით არანაკლებ მითითებულზე, თქვენ უნდა შეიყვანოთ:

იპოვე / -პერმი -644

ყველა ფაილი დამატებითი ნებართვით დააკმაყოფილებს ამ კრიტერიუმს. მაგალითად, ამ შემთხვევაში ის შეესაბამება ფაილს ნებართვით "744".

გაფილტვრა სიღრმის მიხედვით

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

მოდით შევქმნათ სტრუქტურა შემდეგი ბრძანებების გაშვებით:

Mkdir -p ~/test/level1dir(1..10)/level2dir(1..10)/level3dir(1..10) შეხება ~/test/(file(1..10),level1dir(1..10) )/(ფაილი(1..10),level2dir(1..10)/(ფაილი(1..10),level3dir(1..10)/ფაილი(1..10)))) cd ~/ტესტი

სტრუქტურის შესამოწმებლად შეგიძლიათ გამოიყენოთ ls და cd ბრძანებები. ორგანიზაციის გაგების შემდეგ, თქვენ უნდა დაბრუნდეთ ტესტის დირექტორიაში:

CD ~/ტესტი

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

იპოვეთ -name file1

შედეგი ბევრია. თუ გამომავალს გადავთარგმნით მრიცხველზე, დავინახავთ, რომ სულ არის 1111 ასეთი ფაილი:

იპოვეთ -name file1 | wc -l 1111

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

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

იპოვეთ -maxdepth ნომერი -სახელი სახელი

იმისათვის, რომ იპოვოთ "file1" მხოლოდ საქაღალდეებში "level1" და ზემოთ, თქვენ უნდა მიუთითოთ მაქსიმალური სიღრმე 2 (1 ზედა დონის დირექტორიასთვის და 1 1 დონის დირექტორიებისთვის):

იპოვეთ -maxdepth 2 -name file1

თუ შეცდომას იპოვით, გთხოვთ, მონიშნეთ ტექსტის ნაწილი და დააწკაპუნეთ Ctrl+Enter.

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

დღეს ვისაუბრებთ Find ბრძანების გამოყენებაზე - დამიჯერეთ, ღირს ისწავლოთ როგორ იმუშაოთ ამ მძლავრ და მოსახერხებელ ხელსაწყოზე.

როგორ გამოვიყენოთ Find ბრძანება

მარტივი სიტყვებით, find ბრძანების ძირითადი სინტაქსი ასეთია:

იპოვნეთ / path parameters ფაილის სახელი

გავიგოთ გუნდის შესაძლებლობები

მოძებნეთ ფაილი სახელით

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

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

  • სახელი — რეგისტრის მგრძნობიარე ძიება ფაილის სახელისთვის
  • iname - ძიება არ არის მგრძნობიარე ფაილის სახელის შემთხვევაში

უნდა გვახსოვდეს, რომ Linux-ში ფაილის სახელი მნიშვნელოვანია და თუ თქვენ გჭირდებათ, მაგალითად, ფაილის Ubuntu.txt პოვნა, მაშინ შემდეგი ბრძანება არ მოგცემთ შედეგს:

იპოვეთ / -name ubuntu.txt

მაგრამ შეგიძლიათ გამოიყენოთ iname ბრძანება და შეასრულოთ რეგისტრირებული ძიება:

იპოვეთ / -iname ubuntu.txt

ძებნა ტიპის მიხედვით

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

  • f - ჩვეულებრივი ფაილი
  • d - დირექტორია
  • ლ - სიმბოლური ბმული
  • გ - სიმბოლო მოწყობილობა
  • ბ - ბლოკის მოწყობილობა

მაგალითად, მოძებნეთ ყველა დირექტორია შიგნით სახლის დირექტორიაამჟამინდელი მომხმარებელი, რომლის სახელი იწყება "config"-ით, გაუშვით შემდეგი ბრძანება:

იპოვეთ ~ -type d -name config*

ძიების შედეგების გამოტანა ფაილში

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

იპოვეთ /etc -type f -name "*.conf" > conf_search

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

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

იპოვეთ / -ზომა +1000 მ

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

  • გ - ბაიტი
  • k - კილობაიტები
  • M - მეგაბაიტი
  • G - გიგაბაიტი
  • b - ბლოკები 512 ბაიტი

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

© 2024 ermake.ru -- კომპიუტერის შეკეთების შესახებ - საინფორმაციო პორტალი