Dosyalar və Kataloqlarla işləmək

Artıq sənədləri və qovluqları necə araşdıracağımızı bilirik, amma ilk növbədə onları necə yaradırıq?

Birinci addım: harada olduğumuza və nələr olduğumuza baxın

Masaüstündəki shell-study-data qovluğuna qayıdaq və tərkibində nə olduğunu görmək üçün ls -F istifadə edək:

Bir qovluq yaradın

Mkdir tezisini (nəticəsi olmayan) əmrindən istifadə edərək tezis adlı yeni bir qovluq yaradaq:

Adından təxmin etdiyiniz kimi, mkdir 'qovluq etmək' deməkdir. Tez nisbi bir yol olduğundan (yəni / what / ever / thesis kimi aparıcı bir əyri işarəsi yoxdur), yeni qovluq cari iş qovluğunda yaradılmışdır:

Tezlik qovluğunu yeni yaratdığımız üçün hələ orada heç bir şey yoxdur:

Qeyd edək ki, mkdir tək-tək tək kataloqlar yaratmaqla məhdudlaşmır. -P seçimi, mkdir-ə tək bir əməliyyatda iç içdəki alt qovluqları olan bir qovluq yaratmağa imkan verir:

Ls əmrinə -R seçimi, bir qovluq içərisindəki bütün alt dizinlərin siyahısını verəcəkdir. Layihə qovluğunda yeni yaratdığımız yeni dizin iyerarxiyasını rekursiv şəkildə sadalamaq üçün ls -FR istifadə edək:

Eyni şeyi etmənin iki yolu

Bir qovluq yaratmaq üçün qabıqdan istifadə etmək, bir fayl tədqiqatçısı istifadə etməkdən fərqli deyil. Əməliyyat sisteminizin qrafik fayl tədqiqatçısından istifadə edərək mövcud qovluğu açarsanız, tezis qovluğu da orada görünəcəkdir. Qabıq və fayl tədqiqatçısı fayllarla qarşılıqlı əlaqədə iki fərqli yol olsa da, fayllar və qovluqların özləri eynidir.

Fayllar və qovluqlar üçün yaxşı adlar

  1. Boş yerlərdən istifadə etməyin.

    Boşluqlar bir ad daha mənalı edə bilər, ancaq boşluqlar komanda xəttindəki arqumentləri ayırmaq üçün istifadə olunduğundan, fayl və qovluq adlarında onlardan qaçınmaq daha yaxşıdır. Bunun əvəzinə - və ya _ istifadə edə bilərsiniz (məs. Şimal-pasifik-gyre / şimal pasifik gyre əvəzinə).

  2. Adı - (tire) ilə başlamayın.

    Komutlar - ilə başlayan adları seçim kimi qəbul edir.

  3. Hərflərlə, rəqəmlərlə,. (nöqtə və ya 'nöqtə'), - (tire) və _ (alt xətt).

    Bir çox başqa simvol komanda xəttində xüsusi mənalar daşıyır. Bunlardan bəziləri haqqında bu dərs zamanı öyrənəcəyik. Komandanızın gözlənildiyi kimi işləməməsinə səbəb ola biləcək və hətta məlumat itkisinə səbəb ola biləcək xüsusi simvollar var.

Mətn faylı yaradın

CD-ni istifadə edərək iş qovluğumuzu tezliyə dəyişdirək, sonra Nano adlı bir mətn redaktorunu çalıştıraraq draft.txt adlı bir fayl yaradın:

Hansı redaktor?

'Nano bir mətn redaktorudur' dedikdə həqiqətən 'mətn' nəzərdə tutulur: cədvəllər, şəkillər və ya hər hansı digər insan dostu media ilə deyil, yalnız sadə xarakter məlumatları ilə işləyə bilər. Bunu ən mürəkkəb mətn redaktorlarından biri olduğu üçün nümunələrdə istifadə edirik. Bununla birlikdə, bu xüsusiyyətinə görə, bu seminardan sonra etməyiniz lazım olan iş üçün kifayət qədər güclü və ya çevik olmaya bilər. Unix sistemlərində (Linux və macOS kimi) bir çox proqramçı Emacs və ya Vim (hər ikisi öyrənmək üçün daha çox vaxt tələb edir) və ya Gedit kimi qrafik redaktordan istifadə edir. Windows-da Notepad ++ istifadə etmək istəyə bilərsiniz. Windows-da, bu dərsin məqsədləri üçün əmr sətrindən nano ilə eyni şəkildə idarə edilə bilən notepad adlı daxili redaktoru var.

Hansı redaktordan istifadə etməyinizdən asılı olmayaraq, harada axtarış apardığını və saxladığını bilməlisiniz. Qabıqdan başlasanız, cari iş qovluğunuzu (ehtimal ki) varsayılan yeri kimi istifadə edəcəkdir. Kompüterinizin başlama menyusundan istifadə edirsinizsə, bunun əvəzinə faylları masaüstünüzdə və ya sənədlər qovluğunda saxlamaq istəyə bilər. Bunu ilk dəfə 'Farklı Kaydet ...' olaraq başqa bir qovluğa gedərək dəyişdirə bilərsiniz.

Bir neçə sətir mətn yazaq. Mətnimizdən razı qaldıqdan sonra məlumatlarımızı diskə yazmaq üçün Ctrl + O düymələrini basa bilərik (Ctrl və ya Control düymələrini basın və basıb saxlayın və O düyməsini basın). bunu qeyd etmək üçün: draft.txt təklif olunan defoltunu qəbul etmək üçün qayıt düyməsini basın.

Faylımız qurtardıqdan sonra redaktordan çıxıb qabığa qayıtmaq üçün Ctrl + X istifadə edə bilərik.

Control, Ctrl və ya ^ Key

  • Nəzarət-X
  • Nəzarət + X
  • Ctrl-X
  • Ctrl + X
  • ^ X
  • Cx

nano çıxdıqdan sonra ekranda heç bir çıxış buraxmır, lakin indi ls.txt adlı bir fayl yaratdığımızı göstərir:

Fərqli bir şəkildə sənədlər yaratmaq

Nano redaktoru istifadə edərək mətn faylları necə yaradılacağını gördük. İndi aşağıdakı əmri sınayın:

  1. Toxunma əmri nə etdi? GUI fayl kəşfiyyatçısından istifadə edərək indiki qovluğunuza baxdığınız zaman fayl görünür?

  2. Faylları yoxlamaq üçün ls -l istifadə edin. My_file.txt nə qədər böyükdür?

  3. Nə vaxt bu şəkildə bir fayl yaratmaq istəyə bilərsiniz?

Həll

  1. Toxunma əmri cari kataloqunuzda my_file.txt adlı yeni bir fayl yaradır. Bu yeni yaradılan faylı əmr sətri istəməsinə ls yazaraq müşahidə edə bilərsiniz. my_file.txt, GUI fayl araşdırıcınızda da görünə bilər.

  2. Ls -l ilə faylı yoxladıqda, my_file.txt ölçüsünün 0 bayt olduğunu unutmayın. Başqa sözlə, burada heç bir məlumat yoxdur. Mətn redaktorunuzdan istifadə edərək my_file.txt açarsanız boşdur.

  3. Bəzi proqramlar özləri çıxış sənədləri yaratmırlar, əksinə boş faylların artıq yaradılmasını tələb edirlər. Proqram işlədildikdə, çıxışı ilə doldurmaq üçün mövcud bir faylı axtarır. Toxunuş əmri, bu cür proqramlar tərəfindən istifadə olunmaq üçün boş bir mətn faylı yaratmağa imkan verir.

Bir ad nədir?

Nelle-nin bütün sənədlərinə 'bir şey dot' adı verildiyini görmüş ola bilərsiniz və dərsin bu hissəsində həmişə .txt uzantısını istifadə etdik. Bu sadəcə bir konvensiya: bir fayla mifes və ya demək olar ki, istədiyimiz hər hansı bir şey deyə bilərik. Bununla birlikdə, insanların çoxu, müxtəlif növ faylları ayırd etmələrinə kömək etmək üçün çox vaxt iki hissəli adlardan istifadə edirlər (və proqramları). Belə bir adın ikinci hissəsi fayl adı uzantısıadlanır və sənədin hansı növ məlumat saxladığını göstərir: .txt düz mətn sənədini, .pdf PDF sənədini göstərir, .cfg bəzi proqramlar üçün parametrlərlə dolu bir konfiqurasiya sənədidir və ya digər, .png bir PNG şəklidir və s.

Bu vacib olsa da, sadəcə bir konqresdir. Fayllarda bayt var: bu baytları düz mətn sənədləri, PDF sənədləri, konfiqurasiya sənədləri, şəkillər və s. Qaydalarına uyğun olaraq şərh etmək bizim və proqramlarımızın əlindədir.

Balinanın PNG şəklini balina.mp3 adlandırmaq birtəhər sehrli şəkildə balina mahnısının qeydinə çevrilmir, baxmayaraq ki, əməliyyat sistemini kimsə iki dəfə kliklədikdə musiqi pleyeri ilə açmağa cəhd edə bilər.

Fayl və qovluqların köçürülməsi

Kabuk-dərs məlumatları qovluğuna qayıdaraq,

Tezlik qovluğumuzda xüsusilə məlumat verən bir ad olmayan bir taslak layihəsi var.txt, buna görə 'hərəkət' üçün qısaldılmış mv istifadə edərək faylın adını dəyişdirək:

İlk mübahisə mv-yə 'hərəkət etdiyimizi' izah edir, ikincisi isə hara gedəcəyimizi göstərir. Bu halda, tezisin / draft.txt faylını yenidən adlandırmaqla eyni təsiri olan tezi / quotes.txt-ə köçürürük. Əlbəttə, ls bizə göstərir ki, tezisdə quotes.txt adlı bir fayl var:

Hədəf fayl adını göstərərkən diqqətli olmalısınız, çünki mv səs itkisi ilə eyni adlı mövcud dosyanın üzərinə yazacaq və bu da məlumat itkisinə səbəb ola bilər. Əlavə seçim, mv -i (və ya mv - interaktiv), mv-nin yazmadan əvvəl sizdən təsdiq istəməsini təmin etmək üçün istifadə edilə bilər.

Qeyd edək ki, mv dizinlərdə də işləyir.

Quotes.txt-i cari iş qovluğuna köçürək. Bir dəfədən mv istifadə edirik, ancaq bu dəfə mv-yə fayl adını saxlamaq istədiyimizi, ancaq faylı yeni bir yerə qoyduğumuzu söyləmək üçün ikinci bir arqument olaraq yalnız bir qovluq adını istifadə edəcəyik. (Bu səbəbdən əmr 'hərəkət' adlanır.) Bu vəziyyətdə istifadə etdiyimiz qovluq adı xüsusi qovluq adıdır. əvvəllər qeyd etdiyimiz.

Təsiri faylı olduğu qovluqdan cari iş qovluğuna köçürməkdir. İndi bizə tezin boş olduğunu göstərir:

Alternativ olaraq, quotes.txt faylını tez bir zamanda siyahıda göstərməyə çalışaraq tezis qovluğunda olmadığını təsdiq edə bilərik:

Argument olaraq fayl adı və ya qovluğu olan ls yalnız tələb olunan fayl və ya qovluğu siyahıya alır. Arqument olaraq verilən fayl mövcud deyilsə, qabıq yuxarıda gördüyümüz kimi bir səhv qaytarır. Quotes.txt-in indiki kataloqumuzda olduğunu görmək üçün bundan istifadə edə bilərik:

Faylları yeni bir qovluğa köçürmək

Aşağıdakı əmrləri işlədikdən sonra Jamie sucrose.dat və maltose.dat fayllarını səhv qovluğa qoyduğunu başa düşür. Fayllar xam qovluğa qoyulmalı idi.

Bu faylları ham / qovluğa köçürmək üçün boşluqları doldurun (yəni onları qoymağı unutduğu)

Həll

Xatırladaq ki .. ana qovluğa (yəni mövcud qovluğun üstündəki birinə) istinad edir və buna. cari qovluğu nəzərdə tutur.

Faylların və qovluqların kopyalanması

Bir cp əmri, mv kimi çox işləyir, yalnız bir faylı köçürmək əvəzinə kopyalayır. Ls-i iki yolla arqument kimi istifadə edərək düzgün işlədiyini yoxlaya bilərik - əksər Unix əmrləri kimi ls-ə birdən çox yol verilə bilər:

Ayrıca, bir qovluğu və bütün içindəkiləri rekursiv seçimi -r istifadə edərək kopyalaya bilərik, məsələn bir qovluğu yedəkləmək üçün:

Həm tezisin, həm də tezis_backup qovluğunun tərkibini sadalayaraq nəticəni yoxlaya bilərik:

Faylların adının dəyişdirilməsi

  1. cp statstics.txt Statistics.txt
  2. mv statstics.txt Statistics.txt
  3. mv statstics.txt.
  4. cp statstics.txt.

Həll

  1. Xeyr. Doğru adda bir fayl yaradarkən, səhv adlandırılmış fayl hələ də qovluqda mövcuddur və silinməsi lazımdır.
  2. Bəli, bu sənədin adını dəyişdirmək üçün işləyəcək.
  3. Xeyr, (.) Dövrü sənədin hara köçürüləcəyini göstərir, lakin yeni bir fayl adı vermir; eyni fayl adları yaradıla bilməz.
  4. Xeyr, (.) Dövrü sənədin hara köçürüləcəyini göstərir, lakin yeni bir fayl adı vermir; eyni fayl adları yaradıla bilməz.

Hərəkət və kopyalama

Aşağıda göstərilən ardıcıllıqla bağlanma ls əmrinin çıxışı nə qədərdir?

  1. zülallar qurtardı.dat yenidən birləşdi
  2. yenidən birləşdi
  3. zülallar.dat yenidən birləşdi
  4. zülallar qurtardı.dat

Həll

  1. Xeyr, yuxarıdakı izahata baxın. protein-saved.dat / Users / jamie ünvanında yerləşir
  2. Bəli
  3. Xeyr, yuxarıdakı izahata baxın. proteinlər.dat / Users / jamie / data / recombined ünvanında yerləşir
  4. Xeyr, yuxarıdakı izahata baxın. protein-saved.dat / Users / jamie ünvanında yerləşir

Faylların və qovluqların silinməsi

Shell-study-data qovluğuna qayıdıb yaratdığımız quotes.txt faylını silməklə bu qovluğu səliqəyə salaq. Bunun üçün istifadə edəcəyimiz Unix əmri rm ('çıxar' 'qısadır):

Faylın ls istifadə edərək getdiyini təsdiqləyə bilərik:

Silinmə əbədidir

Unix qabığında silinmiş sənədləri bərpa edə biləcəyimiz bir zibil qutusu yoxdur (baxmayaraq ki, Unix-in əksər qrafik interfeysləri). Bunun əvəzinə, sənədləri sildikdə, onların disk sistemindəki əlaqəsi kəsilir, beləliklə diskdəki yaddaş sahəsi yenidən işlənə bilər. Silinmiş sənədləri tapmaq və bərpa etmək üçün alətlər mövcuddur, lakin hər hansı bir vəziyyətdə işləyəcəklərinə zəmanət yoxdur, çünki kompüter dərhal faylın disk yerini yenidən işləyə bilər.

Rm təhlükəsiz istifadə

Rm -i thesis_backup / quotations.txt icra edildikdə nə baş verir? Rm istifadə edərkən niyə bu qorunma istəyirik?

Həll

-İ seçimi (hər) qaldırılmadan əvvəl istənəcəkdir (silinməni təsdiqləmək üçün Y və ya sənədin saxlanılması üçün N istifadə edin). Unix qabığının zibil qutusu yoxdur, ona görə çıxarılan bütün sənədlər əbədi yox olacaq. -İ seçimini istifadə edərək, yalnız silmək istədiyimiz sənədləri sildiyimizi yoxlamaq şansımız var.

Rm tezisini istifadə edərək tezis qovluğunu silməyə çalışsaq, bir səhv mesajı alırıq:

Bu, rm varsayılan olaraq yalnız qovluqlarda deyil, yalnız fayllarda işlədiyindən baş verir.

rr rekursiv seçimindən istifadə etsək, rm bir qovluğu və içindəki bütün məlumatları silə bilər və bunu heç bir təsdiq istəməsi olmadan edəcəkdir :

Kabukdan istifadə edərək silinmiş faylları almağın bir yolu olmadığını nəzərə alsaq, rm -r çox ehtiyatla istifadə olunmalıdır (rm -r -i interaktiv seçimini əlavə etməyi düşünə bilərsiniz).

Birdən çox fayl və qovluqla əməliyyatlar

Çox vaxt birdən bir neçə dosyanı kopyalamaq və ya köçürmək lazımdır. Bu, fərdi fayl adlarının siyahısını təqdim etməklə və ya joker işarələrdən istifadə edərək adlandırma modelini göstərməklə edilə bilər.

Birdən çox fayl adı ilə kopyalayın

Bu məşq üçün shell-study-data / data qovluğundakı əmrləri test edə bilərsiniz.

Aşağıdakı nümunədə bir neçə fayl adı və bir qovluq adı verildikdə cp nə edir?

Aşağıdakı nümunədə üç və ya daha çox fayl adı verildikdə cp nə edir?

Həll

Birdən çox fayl adı verildikdən sonra bir kataloq adı (yəni təyinat qovluğu son arqument olmalıdır) verildiyi təqdirdə, cp faylları adlanan qovluğa kopyalayır.

Üç fayl adı verilsə, cp aşağıdakı arqument kimi bir səhv buraxır, çünki son arqument kimi bir qovluq adı gözləyir.

Eyni anda birdən çox fayla daxil olmaq üçün joker işarələrdən istifadə

Joker kartlar

* sıfır və ya daha çox simvolla uyğun gələn bir joker kartdır. Kabuk-dərs məlumatları / molekullar qovluğunu nəzərdən keçirək: * .pdb, ethane.pdb, propane.pdb və '.pdb' ilə bitən hər fayla uyğun gəlir. Digər tərəfdən, p * .pdb yalnız pentane.pdb və propane.pdb ilə eşleşir, çünki öndəki 'p' yalnız 'p' hərfi ilə başlayan fayl adları ilə uyğun gəlir.

? həm də bir joker kartdır, ancaq tam bir xarakterə uyğundur. Deməli? Etane.pdb methane.pdb ilə, eyni zamanda * ethane.pdb həm ethane.pdb, həm də methane.pdb ilə uyğun gəlir.

Joker işarələr bir-biri ilə birlikdə istifadə edilə bilər, məsələn. ane.

Qabıq bir joker kartı gördükdə , istənilən əmri çalıştırmadan əvvəl uyğun gələn fayl adlarının siyahısını yaratmaq üçün joker işarəni genişləndirir . İstisna olaraq, bir joker ifadə ifadəsi heç bir fayla uyğun gəlmirsə, Bash ifadəni olduğu kimi əmrə bir arqument kimi ötürəcəkdir. Məsələn, molekullar qovluğuna ls * .pdf yazmaq (yalnız adları .pdb ilə bitən faylları ehtiva edir) * .pdf adlı bir sənədin olmadığı səhv mesajı ilə nəticələnir. Bununla birlikdə, ümumiyyətlə wc və ls kimi əmrlər bu ifadələrə uyğun fayl adlarının siyahılarına baxır, ancaq joker işarələrin özlərini deyil. Joker işarələrin genişləndirilməsi ilə məşğul olan digər proqramlar deyil, qabıqdır və bu, dikbaş dizaynın başqa bir nümunəsidir.

Bir naxışla uyğun gələn fayl adlarını siyahıya alın

  1. ls * t * ane.pdb
  2. ls * t? ne. *
  3. ls * t ?? ne.pdb
  4. etan. *

Həll

Çözüm 3.

1. adları sıfır və ya daha çox simvoldan (*) sonra t hərfindən sonra sıfır və ya daha çox simvoldan (*) sonra ane.pdb olan bütün sənədləri göstərir. Bu, etan.pdb metan.pdb oktan.pdb pentan.pdb verir.

2. adları sıfır və ya daha çox simvol (*) ilə başlayan t hərfi, daha sonra tək bir simvol (?), Sonra ne olan bütün sənədləri göstərir. sonra sıfır və ya daha çox simvol (*). Bu bizə octane.pdb və pentane.pdb verəcək, lakin thane.pdb ilə bitən heç bir şeyə uyğun gəlmir.

3. t və ne arasında iki simvol (??) uyğunlaşdıraraq seçim 2-nin problemlərini həll edir. Bu həll yolu.

4. yalnız etanla başlayan sənədləri göstərir. .

Wildcards haqqında daha çox məlumat

Samin kalibrləmə məlumatlarını, məlumat dəstlərini və məlumat dəstlərinin təsvirlərini ehtiva edən bir qovluğu var:

Başqa bir ekskursiyaya getməzdən əvvəl, məlumatlarının ehtiyat nüsxəsini çıxarmaq və bəzi məlumat dəstlərini həmkarı Boba göndərmək istəyir. Sam işi görmək üçün aşağıdakı əmrlərdən istifadə edir:

Boşluqları dolduraraq Sam-ə kömək edin.

Nəticədə qovluq quruluşu belə olmalıdır