Section author: Vedran Miletić, Vanja Slavuj, Sanja Pavkov, Anja Vrbanjac

Baratanje datotekama u datotečnom sustavu

Stvaranje, kopiranje, brisanje i preimenovanje datoteka

  • touch stvara praznu datoteku danog imena

  • rm briše datoteku danog imena

  • cp kopira datoteku danog imena u datoteku drugog danog imena; primjer:

    $ cp datoteka1 datoteka2 # kopira datoteke (prvu u drugu)
    
  • mv preimenuje (miče) datoteku danog imena; primjer:

    $ mv datoteka1 datoteka2 # premješta datoteku1 u datoteku2 i preimenuje ih
    

Zadatak

  • U svom kućnom direktoriju napravite direktorij zadatak1510 i uđite u njega.

  • U njemu napravite 3 datoteke: vjezba1, vjezba2 i vjezba3 jednom naredbom (linijom). Ispišite na ekran sadržaj datoteke vjezba2.

  • Izbrišite zatim datoteku vjezba1.

  • U istom direktoriju napravite i direktorij dir1.

  • Kopirajte datoteku vjezba3 u dir1, jednom koristeći reltivno a drugi put apsolutno referenciranje.

  • cp -r i rm -r označava rekurzivno kopiranje i brisanje, briše direktorij i sve datoteke i poddirektorije u njemu

    • kod mv ``naredbe, za razliku od ``cp i rm, nema potrebe za rekurzijom; radi se o preimenovanju

Zadatak

  • U Vašem kućnom direktoriju napravite predloženu strukturu direktorija:

    studentXY ------ Studij --------- Preddiplomski -------- DINP.txt
                               |                        |
                               |----- Pravilnik.txt     |--- Raspored.txt
    
  • Kopirajte datoteku Pravilnik.txt u direktorij Preddiplomski.

  • Kopirajte sav sadržaj direktorija Preddiplomski, u direktorij Diplomski, koristeći apsolutno referenciranje.

  • Izbrišite direktorij Preddiplomski.

  • Direktorij Diplomski preimenujte u Dipl.

Dodatni zadatak

Provjerite čemu služi i kako se koristi program Midnight Commander (naredba mc).

Glob uzorci

  • mnogo radimo sa nazivima datoteka pa postoji mogućnost rada sa posebnim znakovima (koji nemaju doslovno značenje) da bismo brzo i lako specificirali nazive većeg broja datoteka

  • glob uzorci, globovi ili wildcards

    • koriste se za pretraživanje uzoraka koji odgovaraju zadanome

    • način da više datoteka koje imaju slična imena povežemo jednom naredbom

    • glob != regex, samo ima donekle sličnu sintaksu i namjenu

  • ? – jedan znak, bilo koji

  • * – bilo koliko bilo kojih znakova

  • [chars] – jedan znak, bilo koji od navedenih u zagradama, može i raspon oblika [A-Z], [a-z] ili [0-9]

  • `<:klasa:>`__ – zamjenjuje samo jedan, bilo koji znak koji je član navedene klase

    • najčešće korištene klase su: [:alnum:], [:alpha:], [:digit:], [:lower:], [:upper:]

  • \ – tzv. prekidni znak

Zadatak

  • U svom kućnom direktoriju stvorite poddirektorij Zadatci i u njemu datoteke zadatak, zadatek, zadatuk, zadatak1, zadatak2, zadatakABC, zadatakabc, zadacnica, zadacnicA, zad3 i dat05.

  • Jednom naredbom, koristeći se glob-om, izlistajte samo:

    • zadatak, zadatek, zadatuk;

    • zadatek, zadatuk;

    • samo datoteke koje na 8 mjestu naziva imaju veliko slovo

    • samo datoteke koje počinju slovom z, na 5 mjestu naziva im nije ni malo ni veliko slovo koja se po abecedi nalazi nakon slova s, i čiji naziv završava malim slovom

    • sve datoteke čiji naziv završava brojem manjim od 4

    • sve navedene datoteke

  • Isprobajte naredbu ls [^ad]* i razmislite o njezinom značenju.

  • Isprobajte naredbu ls {ab,dat,f}?? i razmislite o njezinom značenju.

  • Isprobajte naredbu cat *`<:upper:]1-4]. Što ona radi?

Pretraživanje datotečnog sustava

  • find u specificiranim direktorijima traži datoteke ili skupine datoteka

    • sintaksa: find <direktoriji> <uvjeti> (direktorij koji se pretražuje mora biti naveden prije uvjeta)

    • direktorij može biti dan korištenjem apsolutnog ili relativnog referenciranja

    • može koristiti regularne izraze parametar -regex

    • pregled često korištenih parametara:

      Parametar

      Ograničenje pretraživanja

      -user <ime korisnika>

      Samo datoteke određenog korisnika

      -size <veličina>

      Samo datoteke specifične veličine

      -type f

      Samo datoteke (ne direktoriji)

      -type d

      Samo direktoriji

      -name <ime datoteke>

      Samo datoteke određenog imena

      -atime <broj dana>

      Samo datoteke čije je vrijeme posljednjeg pristupa manje od navedenog u danima

      -amin <broj minuta>

      Isto kao iznad samo se navode minute umjesto dana

      -ctime <broj dana>

      Samo datoteke čije je vrijeme izrade manje od navedenog u danima

      -cmin <broj minuta>

      Isto kao iznad samo se navode minute umjesto dana

      -mtime <broj dana>

      Samo datoteke čije je vrijeme posljednje promjene manje od navedenog u danima

      -mmin <broj minuta>

      Isto kao iznad samo se navode minute umjesto dana

      -newer <datoteka>

      Samo datoteke stvorene prije određene datoteke

    • naredba je spora jer mora provjeriti svaki file koji se nalazi na zadanoj putanji

    • česte primjene:

      • brisanje nađenih datoteka naredbom find: find ... -exec rm {} \; ili find ... | xargs rm

      • pretraživanje nađenih datoteka: find ... -type f | xargs grep <izraz>

Zadatak

Napišite naredbu find kojom u svom kućnom direktoriju tražite datoteke koje počinju sa iz-, čiji ste vi vlasnik i kojima je pristupano u zadnjih 30 dana.

  • locate pretražuje bazu datoteka za datoteku koja u imenu sadrži dani niz znakova

    • sintaksa: locate <ime datoteke>

    • rezultat pretraživanja je puna putanja do tražene datoteke

    • pretražuje brže jer stvara bazu imena datoteka koje postoje u datotećnom sustavu te nema potrebe pretraživati svaku datoteku koja postoji na datotečnom sustavu; baza se osvježava naredbom updatedb, na većini modernih distribucija se pokreće automatski na dnevnoj bazi

Zadatak

Pronađite datoteku os-release.

  • which se koristi kada želimo saznati punu putanju do određene izvršne datoteke datoteke koja se nalazi u nekom od direktorija navedenom u varijabli okoline PATH

  • whereis pretražuje lokaciju izvornog koda, binarnih datoteka i stranica priručnika

    • pregled često korištenih parametara:

      Parametar

      Uloga

      -b

      traženje binarnih datoteka

      -m

      traženje stranica priručnika

      -s

      traženje izvršnog koda

Ponovimo!

  • Prisjetite se naredbi za stvaranje, brisanje i kopiranje datoteka. Koja naredba može primiti više argumenata?

  • Koja se naredba koristi za pomicanje neke datoteke u datotečnom sustavu? Koja za preimenovanje? Objasnite.

  • Što su globovi?

  • Koja je razlika između znakova ? i * kod globova?