Menu

Daxil olun Qeydiyyat

Linux

İnformasiyanın filtrlənməsi. Requlyar ifadələr. grep əmri. Sabit və simvolik linklər

İnformasiyanın filtrlənməsi. Requlyar ifadələr. grep əmri. Sabit və simvolik linklər

İnformasiyanın filtrlənməsi. Requlyar ifadələr


Hərdən adının tərkibindəki məlumatdan xəbərdar olduğumuz, lakin, tam adını və yerləşdiyi yeri bilmədiyimiz fayldan informasiyanı ekrana çıxarmaq lazım gəlir. Məhz bu hallar üçün requlyar ifadələr mövcuddur. Onlardan ən çox istifadə olunanları aşağıda qeyd etmişik.
Requlyar ifadələr – şablonun müəyyən edilməsi vasitəsidir.
^ – sətrin başlanğıcı;
$ – sətrin sonu;
[ ] – mötərizədəkilərə daxil olan ixtiyari simvol. Diapozonları dəstəkləyir, məsələn, [0-9] – rəqəmləri, [a-z A-Z] – latın əlifbasının bütün hərflərini və s.
[^] – mötərizədə qeyd olunanlardan başqa ixtiyari simvol;
\ – ixtiyari metasimvolun işini ləğv edir.
. – ixtiyari bir simvol.
Requlyar ifadələr Linux-un bütün mətn redaktorları tərəfindən dəstəklənir.

 

grep əmri


Mətnin filtrlənməsi üçün grep proqramı mövcuddur. O, həmçinin requlyar ifadələrdən istifadə edir.
grep <word> <file> – mətnin filtrlənməsi utilitidir. file adlı faylda word şablonuna uyğun olan ifadələrin iştirak etdiyi sətrləri axtarır və onları standart şəkildə ekrana çıxarır.
Bir qayda olaraq, grep utilitini yalnız faylların filtrasiyası üçün deyil, həmçinin, hər hansı bir əmrin ekrana çıxarılması üçün istifadə edirlər.
Aşağıdakı misalda /bin kataloqunda “f” hərfi ilə başlayan bütün faylları axtarmağa çalışırıq.
ls /bin | grep ^f.*

 

Sabit və simvolik linklər


Linux-da siz fayl və kataloqlara link yarada bilərsiniz. Əslində eyni fayl, sistemdə bir neçə adla saxlana bilər və fayla istənilən sayda link yaratmaq mümkündür. Linklər sabit və simvolik olurlar.
Sabit linklər fayla sabit şəkildə bağlanırlar. Belə ki, fayla ən azı bir sabit link varsa, onda onu silmək olmaz. Əgər fayla yalnız simvolik linklər varsa, onda faylı silə bilərsiniz. Bu zaman linklər ləğv olunacaq və heç yana müraciət etməyəcək.
Sabit linklər fiziki olaraq fayl sistemindən kənarda yerləşən fayla istinad oluna bilməz. Məsələn, fayl başqa bölmədə yerləşirsə. Link yaratmaq üçün ln əmrindən istifadə olunur. Bu əmr haqqında aşağıda ətraflı məlumat vermişəm.
ln – faylları əlaqələndirmək üçün istifadə olunur. Əmrin sintaksisi aşağıdakı kimidir:
ln <source_file> - cari kataloqda source_file faylına link yaradır;

ln <source_file> <dest_file> - dest_file faylı, fayl sistemində mövcud deyilsə, source_file faylından ona link yaradır. Bu əmri sadə şəkildə belə izah etmək olar ki, source_file və dest_file eyni fayllardır, lakin, adları fərqlidir. Qeyd edim ki, əgər dest_file-ın başqa kataloqda yaradılmasını istəyirsinizsə, onda həmin kataloqa gedən yolu da yazmalısınız. Məsələn, ln leyla1 /home/leyla/Documents/leyla2
leyla1 faylı sizin hal-hazırda olduğunuz yox, başqa kataloqdadırsa, onda leyla1 faylının da yerləşdiyi kataloqa gedən yolu qeyd etməlisiniz. Məsələn, ln /etc/bin/leyla1 /home/leyla/Documents/leyla2

ln <source_1> <source_2> ... <source_n> <directory>
directory artıq fayl sistemində mövcud olan kataloqdur. Cari kataloqdakı source_1, source_2, ..., source_n fayllarından, directory kataloqundakı uyğun olaraq eyni adlı fayllara link yaradır.
Parametrlərin iştirakı olmadan, yəni, yuxarıda qeyd etdiyimiz şəkildə ln əmri hard link (sərt link) yaratmağa xidmət edir. Lakin, -s parametri ilə bu əmr soft və ya symbolic link (simvolik link) yaratmaq üçün istifadə olunur.
Qeyd: UNIX-in bütün versiyalarında qovluqlara hard link yaratmaq qadağan olunub. Linux, həmçinin, məlum olmayan səbəblərdən, qurğuların xüsusi fayllarına hard link yaratmağa qadağa qoyub.


Bizi dəstəkləyənlər