2.4 Lekcija 1
Sertifikat: |
Linux Essentials |
---|---|
Verzija: |
1.6 |
Tema: |
2 Kretanje kroz Linux sistem |
Cilj: |
2.4 Kreiranje, premještanje i brisanje datoteka |
Lekcija: |
1 od 1 |
Uvod
Ova lekcija pokriva upravljanje datotekama i direktorijima na Linux-u koristeći alate komandne linije.
Datoteka je zbirka podataka s imenom i skupom atributa. Ako biste, na primjer, prenijeli neke fotografije sa svog telefona na računar i dali im opisna imena, sada biste na svom računaru imali gomilu slikovnih datoteka. Ove datoteke imaju atribute kao što je vrijeme kada je datoteka posljednji put pristupana ili modificirana.
Direktorij je posebna vrsta datoteke koja se koristi za organiziranje datoteka. Dobar način razmišljanja o direktorijima je poput fascikli datoteka koje se koriste za organiziranje papira u ormaru za datoteke. Za razliku od papirnih fascikli datoteka, možete lako staviti direktorije unutar drugih direktorija.
Komandna linija je najefikasniji način upravljanja datotekama na Linux sistemu. Alati šela i komandne linije imaju karakteristike koje čine korištenje komandne linije bržim i lakšim od grafičkog menadžera datoteka.
U ovom dijelu ćete koristiti komande ls
, mv
, cp
, pwd
, find
, touch
, rm
, rmdir
, echo
, cat
i mkdir
za upravljanje i organiziranje datoteka i direktorija.
Osetljivost na velika i mala slova
Za razliku od Microsoft Windowsa, imena datoteka i direktorija na Linux sistemima razlikuju velika i mala slova. To znači da su imena /etc/
i /ETC/
različiti direktoriji. Probajte sljedeće komande:
$ cd / $ ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr $ cd ETC bash: cd: ETC: No such file or directory $ pwd / $ cd etc $ pwd /etc
Komanda pwd
vam pokazuje direktorij u kojem se trenutno nalazite. Kao što vidite, promjena u /ETC
nije radila jer takav direktorij ne postoji. Promjena u direktorij /etc
koji postoji, je uspjela.
Kreiranje direktorija
Za kreiranje direktorija, koristi se komanda mkdir
.
Kreirajmo novi direktorij unutar našeg home direktorija:
$ cd ~ $ pwd /home/user $ ls Desktop Documents Downloads $ mkdir linux_essentials-2.4 $ ls Desktop Documents Downloads linux_essentials-2.4 $ cd linux_essentials-2.4 $ pwd /home/emma/linux_essentials-2.4
Za vrijeme trajanja ove lekcije, sve komande će se odvijati unutar ovog direktorija ili u jednom od njegovih poddirektorija.
Da biste se lako vratili u direktorij lekcija sa bilo koje druge pozicije u vašem sistemu datoteka, možete koristiti komandu:
$ cd ~/linux_essentials-2.4
Shell interpretira karakter ~
kao vaš home direktorij.
Kada ste u direktoriju lekcija, kreirajte još nekoliko direktorija koje ćemo koristiti za vježbe. Možete dodati sve nazive direktorija, odvojene razmacima, u mkdir
komandi:
$ mkdir creating moving copying/files copying/directories deleting/directories deleting/files globs mkdir: cannot create directory ‘copying/files’: No such file or directory mkdir: cannot create directory ‘copying/directories’: No such file or directory mkdir: cannot create directory ‘deleting/directories’: No such file or directory mkdir: cannot create directory ‘deleting/files’: No such file or directory $ ls creating globs moving
Obratite pažnju na poruku o grešci i da su kreirani samo direktoriji moving
, globs
i creating
. Direktoriji copying
i deleting
još ne postoje. mkdir
, prema zadanim postavkama, neće kreirati direktorij unutar direktorija koji ne postoji. Opcija -p
ili --parents
nalaže mkdir
komandi da kreira roditeljske direktorije ako ne postoje. Isprobajte istu komandu mkdir
s opcijom -p
:
$ mkdir -p creating moving copying/files copying/directories deleting/directories deleting/files globs
Sada ne dobijate nikakve poruke o grešci. Pogledajmo koji direktoriji sada postoje:
$ find . ./creating ./moving ./globs ./copying ./copying/files ./copying/directories ./deleting ./deleting/directories ./deleting/files
Program find
se obično koristi za traženje datoteka i direktorija, ali bez ikakvih opcija, on će vam pokazati listu svih datoteka, direktorija i poddirektorija vašeg trenutnog direktorija.
Tip
|
Kada prikazujete sadržaj direktorija sa |
Kreiranje datoteka
Obično će datoteke kreirati programi koji rade s podacima pohranjenim u datotekama. Prazan fajl se može kreirati pomoću komande touch
. Ako pokrenete touch
na postojećoj datoteci, sadržaj datoteke neće biti promijenjen, ali će se ažurirati vremenska oznaka izmjene ili kreiranja datoteka.
Pokrenite sljedeću komandu da kreirate neke fajlove za lekciju globinga:
$ touch globs/question1 globs/question2012 globs/question23 globs/question13 globs/question14 $ touch globs/star10 globs/star1100 globs/star2002 globs/star2013
Sada provjerimo da li postoje sve daoteke unutar direktorija 'globs':
$ cd globs $ ls question1 question14 question23 star1100 star2013 question13 question2012 star10 star2002
Obratite pažnju kako je touch
kreirao fajlove? Možete vidjeti sadržaj tekstualne datoteke pomoću komande cat
. Isprobajte ga na jednoj od datoteka koje ste upravo kreirali:
$ cat question14
Pošto touch
komanda kreira prazne datoteke, ne biste trebali dobiti nikakav izlaz. Možete koristiti echo
komandu sa karakterom >
za kreiranje jednostavnih tekstualnih datoteka. Probaj:
$ echo hello > question15 $ cat question15 hello
Komanda echo
prikazuje tekst na komandnoj liniji. Znak >
upućuje šelu da zapiše izlaz komande u specificiranu datoteku umjesto u vaš terminal. Ovo dovodi do toga da se izlaz echo
, hello
u ovom slučaju upisuje u datoteku question15
. Ovo nije specifično za echo
, može se koristiti sa bilo kojom komandom.
Warning
|
Budite oprezni kada koristite karakter |
Preimenovanje datoteka
Datoteke se premještaju i preimenuju koristeći mv
komandu.
Postavite vaš radni direktorij u moving
direktorij:
$ cd ~/linux_essentials-2.4/moving
Kreirajte neke datoteke za vježbanje. Do sada biste već trebali biti upoznati sa ovim komandama:
$ touch file1 file22 $ echo file3 > file3 $ echo file4 > file4 $ ls file1 file22 file3 file4
Pretpostavimo da je file22
greška u kucanju i treba da bude file2
. Popravite to komandom mv
. Prilikom preimenovanja datoteke, prvi argument je trenutno ime, drugi je novo ime:
$ mv file22 file2 $ ls file1 file2 file3 file4
Budite oprezni s komandom mv
. Ako preimenujete datoteku u ime postojeće datoteke, ona će je prepisati. Testirajmo ovo sa file3
i file4
:
$ cat file3 file3 $ cat file4 file4 $ mv file4 file3 $ cat file3 file4 $ ls file1 file2 file3
Obratite pažnju kako je sadržaj datoteke file3
sada file4
. Koristite opciju -i
da natjerate mv
da vas upita želite li prepisati postojeći fajl. Probaj:
$ touch file4 file5 $ mv -i file4 file3 mv: overwrite ‘file3’? y
Premještanje datoteka
Datoteke se premještaju iz jednog direktorija u drugi komandom mv
.
'
Kreirajte nekoliko direktorija u koje ćete premjestiti datoteke:
$ cd ~/linux_essentials-2.4/moving $ mkdir dir1 dir2 $ ls dir1 dir2 file1 file2 file3 file5
Premjestite datoteku file1
u direktorij dir1
:
$ mv file1 dir1 $ ls dir1 dir2 file2 file3 file5 $ ls dir1 file1
Obratite pažnju kako je zadnji argument mv
komande, odredišni direktorij. Kad god je zadnji argument mv
komande direktorij, datoteke se premještaju u njega. Moguće je navesti nekoliko datoteka jednom mv
komandom.
$ mv file2 file3 dir2 $ ls dir1 dir2 file5 $ ls dir2 file2 file3
Također je moguće koristiti mv
za premještanje i preimenovanje direktorija. Preimenujte dir1
u dir3
:
$ ls dir1 dir2 file5 $ ls dir1 file1 $ mv dir1 dir3 $ ls dir2 dir3 file5 $ ls dir3 file1
Brisanje datoteka i direktorija
Komanda rm
može izbrisati datoteke i direktorije, dok komanda rmdir
može izbrisati samo direktorije. Očistimo moving
direktorij brisanjem datoteke file5
:
$ cd ~/linux_essentials-2.4/moving $ ls dir2 dir3 file5 $ rmdir file5 rmdir: failed to remove ‘file5’: Not a directory $ rm file5 $ ls dir2 dir3
Podrazumjevano, rmdir
može izbrisati samo prazne direktorije, stoga smo morali koristiti rm
za brisanje obične datoteke. Pokušajte izbrisati direktorij `deleting':
$ cd ~/linux_essentials-2.4/ $ ls copying creating deleting globs moving $ rmdir deleting rmdir: failed to remove ‘deleting’: Directory not empty $ ls -l deleting total 0 drwxrwxr-x. 2 emma emma 6 Mar 26 14:58 directories drwxrwxr-x. 2 emma emma 6 Mar 26 14:58 files
Podrazumjevano, rmdir
odbija izbrisati direktorij koji nije prazan. Koristite rmdir
da uklonite jedan od praznih poddirektorija direktorija 'deleting':
$ ls -a deleting/files . .. $ rmdir deleting/files $ ls -l deleting directories
Brisanje velikog broja datoteka ili dubokih struktura direktorija s mnogo poddirektorija može izgledati zamorno, ali je zapravo jednostavno. Podrazumjevano, rm
radi samo na regularnim fajlovima. Opcija -r
se koristi za nadjačavanje ovog ponašanja. Budite oprezni, rm -r
je odličan nožni pištolj! Kada koristite opciju -r
, rm
ne samo da će izbrisati sve direktorije, već i sve unutar tog direktorija, uključujući poddirektorije i njihov sadržaj. Uvjerite se sami kako funkcionira rm -r
komanda:
$ ls copying creating deleting globs moving $ rm deleting rm: cannot remove ‘deleting’: Is a directory $ ls -l deleting total 0 drwxrwxr-x. 2 emma emma 6 Mar 26 14:58 directories $ rm -r deleting $ ls copying creating globs moving
Obratite pažnju kako je deleting
direktorij nestao, čak i ako nije bilo prazan? Kao i mv
, rm
ima opciju -i
da vas upita prije nego što bilo šta učinite. Koristite rm -ri
da uklonite direktorije iz odjeljka moving
koji više nisu potrebni:
$ find . ./creating ./moving ./moving/dir2 ./moving/dir2/file2 ./moving/dir2/file3 ./moving/dir3 ./moving/dir3/file1 ./globs ./globs/question1 ./globs/question2012 ./globs/question23 ./globs/question13 ./globs/question14 ./globs/star10 ./globs/star1100 ./globs/star2002 ./globs/star2013 ./globs/question15 ./copying ./copying/files ./copying/directories $ rm -ri moving rm: descend into directory ‘moving’? y rm: descend into directory ‘moving/dir2’? y rm: remove regular empty file ‘moving/dir2/file2’? y rm: remove regular empty file ‘moving/dir2/file3’? y rm: remove directory ‘moving/dir2’? y rm: descend into directory ‘moving/dir3’? y rm: remove regular empty file ‘moving/dir3/file1’? y rm: remove directory ‘moving/dir3’? y rm: remove directory ‘moving’? y
Kopiranje datoteka i direktorija
Komanda cp
se koristi za kopiranje datoteka i direktorija. Kopirajte nekoliko datoteka u direktorij copying
:
$ cd ~/linux_essentials-2.4/copying $ ls directories files $ cp /etc/nsswitch.conf files/nsswitch.conf $ cp /etc/issue /etc/hostname files
Ako je posljednji argument direktorij, cp
će kreirati kopiju prethodnih argumenata unutar direktorija. Poput mv
, više datoteka se može specificirati odjednom, sve dok je cilj direktorij.
Kada su oba operanda cp
datoteke i ako obje datoteke postoje, cp
prepisuje drugu datoteku kopijom prve datoteke. Vježbajmo ovo tako što ćemo zamijeniti datoteku issue
datotekom hostname
:
$ cd ~/linux_essentials-2.4/copying/files $ ls hostname issue nsswitch.conf $ cat hostname mycomputer $ cat issue Debian GNU/Linux 9 \n \l $ cp hostname issue $ cat issue mycomputer
Sada pokušajno kreirati kopiju direktorija files
unutar direktorija directories
:
$ cd ~/linux_essentials-2.4/copying $ cp files directories cp: omitting directory ‘files’
Kao što možete vidjeti, cp
komanda podrazumjevano radi samo na pojedinačnim datotekama. Da biste kopirali direktorij, koristite opciju -r
. Imajte na umu da će opcija -r
uzrokovati da cp
također kopira sadržaj direktorija koji kopirate:
$ cp -r files directories $ find . ./files ./files/nsswitch.conf ./files/fstab ./files/hostname ./directories ./directories/files ./directories/files/nsswitch.conf ./directories/files/fstab ./directories/files/hostname
Obratite pažnju kako je postojeći direktorij korišten kao odredište, cp
kreira kopiju izvornog direktorija unutar njega? Ako odredište ne postoji, kreirat će ga i ispuniti sadržajem izvornog direktorija:
$ cp -r files files2 $ find . ./files ./files/nsswitch.conf ./files/fstab ./files/hostname ./directories ./directories/files ./directories/files/nsswitch.conf ./directories/files/fstab ./directories/files/hostname ./files2 ./files2/nsswitch.conf ./files2/fstab ./files2/hostname
Globiranje
Ono što se obično naziva globiranjem (eng.globbing) je jednostavan jezik za podudaranje obrazaca. Šelovi komandne linije na Linux sistemima koriste ovaj jezik za upućivanje na grupe datoteka čija imena odgovaraju određenom uzorku. POSIX.1-2017 specificira sljedeće znakove koji odgovaraju uzorcima:
*
-
Odgovara bilo kojem broju bilo kojeg znaka, bez karaktera
?
-
Odgovara bilo kojem znaku
[]
-
Odgovara klasi karaktera
Na engleskom to znači da možete reći vašem šelu da uporedi uzorak umjesto doslovnog niza teksta. Korisnici Linuxa obično određuju više datoteka sa globom umjesto da upisuju naziv svakog fajla. Izvršite sljedeće komande:
$ cd ~/linux_essentials-2.4/globs $ ls question1 question14 question2012 star10 star2002 question13 question15 question23 star1100 star2013 $ ls star1* star10 star1100 $ ls star* star10 star1100 star2002 star2013 $ ls star2* star2002 star2013 $ ls star2*2 star2002 $ ls star2013* star2013
Šel (eng.shell) proširuje *
na bilo koji broj bilo čega, tako da vaš šel tumači star*
,što je bilo šta u relevantnom kontekstu što počinje sa star
. Kada izvršite komandu ls star*
, vaš šel ne pokreće program ls
sa argumentom star*
, nego on traži datoteke u trenutnom direktoriju koje odgovaraju uzorku star*
(uključujući samo star
), i pretvara svaku datoteku koja odgovara uzorku u argumentu ls
:
$ ls star*
što se tiče ls
je ekvivalent
$ ls star10 star1100 star2002 star2013
Karakter *
ne znači ništa za ls
. Da biste to dokazali, izvršite sljedeću komandu:
$ ls star\* ls: cannot access star*: No such file or directory
Kada ispred znaka stavite \
, dajete instrukcije svom šelu da to ne tumači. U ovom slučaju, želite da ls
ima argument star*
umjesto onoga na što se širi glob star*
.
Karakter ili znak ?
se proširuje na bilo koji pojedinačni znak. Isprobajte sljedeće komande da se sami uvjerite:
$ ls question1 question14 question2012 star10 star2002 question13 question15 question23 star1100 star2013 $ ls question? question1 $ ls question1? question13 question14 question15 $ ls question?3 question13 question23 $ ls question13? ls: cannot access question13?: No such file or directory
Zagrade []
se koriste za podudaranje raspona ili klasa znakova. Zagrade []
rade kao u POSIX regularnim izrazima osim što se kod globova (eng.globs) koristi ^
umjesto !
.
Kreirajte nekoliko datoteka za eksperimentisanje:
$ mkdir brackets $ cd brackets $ touch file1 file2 file3 file4 filea fileb filec file5 file6 file7
Raspon unutar zagrada []
je izražen korištenjem znaka -
:
$ ls file1 file2 file3 file4 file5 file6 file7 filea fileb filec $ ls file[1-2] file1 file2 $ ls file[1-3] file1 file2 file3
Može se specificirati više raspona:
$ ls file[1-25-7] file1 file2 file5 file6 file7 $ ls file[1-35-6a-c] file1 file2 file3 file5 file6 filea fileb filec
Uglaste zagrade se također mogu koristiti za podudaranje sa određenim skupom znakova.
$ ls file[1a5] file1 file5 filea
Također možete koristiti znak ^
kao prvi znak koji odgovara svemu osim određenih znakova.
$ ls file[^a] file1 file2 file3 file4 file5 file6 file7 fileb filec
Posljednja stvar koju ćemo pokriti u ovoj lekciji su klase karaktera. Za podudaranje s klasom znakova, koristite [:classname:]
. Na primjer, da koristite klasu cifara, koja odgovara brojevima, uradili biste nešto ovako:
$ ls file[[:digit:]] file1 file2 file3 file4 file5 file6 file7 $ touch file1a file11 $ ls file[[:digit:]a] file1 file2 file3 file4 file5 file6 file7 filea $ ls file[[:digit:]]a file1a
Glob file[[:digit:]a]
, odgovara datoteci file
praćen cifrom ili a
.
Podržane klase znakova ovise o vašem trenutnom lokalu. POSIX zahtijeva sljedeće klase znakova za sve lokalizacije:
[:alnum:]
-
Slova i brojevi.
[:alpha:]
-
Velika i mala slova.
[:blank:]
-
Razmaci i tabovi.
[:cntrl:]
-
Kontrolni znakovi, npr. razmaknica, bell, NAK, escape.
[:digit:]
-
Brojevi (
0123456789
). [:graph:]
-
Grafički znakovi (svi znakovi osim
ctrl
i znaka razmaka) [:lower:]
-
Mala slova (
a-z
). [:print:]
-
Printabilni znakovi (
alnum
,punct
, i znak razmaka). [:punct:]
-
Znaci navoda, i.e.
!
,&
,"
. [:space:]
-
Znakovi praznog prostora, e.g. tabovi, razmaci , novi red.
[:upper:]
-
Velika slova (
A-Z
). [:xdigit:]
-
Heksadecimalni brojevi (obično
0123456789abcdefABCDEF
).
Vođene vježbe
-
S obzirom na sljedeće, odaberite direktorije koji će biti kreirani komandom
mkdir -p /tmp/outfiles/text/today /tmp/infiles/text/today
$ pwd /tmp $ find . ./outfiles ./outfiles/text
/tmp
/tmp/outfiles
/tmp/outfiles/text
/tmp/outfiles/text/today
/tmp/infiles
/tmp/infiles/text
/tmp/infiles/text/today
-
Šta znači
-v
za komandemkdir
,rm
, icp
? -
Šta se događa ako slučajno pokušate kopirati tri datoteke na istoj komandnoj liniji u datoteku koja već postoji, umjesto u direktorij?
-
Šta se događa kada koristite
mv
da premjestite direktorij u njega? -
Kako biste izbrisali sve datoteke u vašem trenutnom direktoriju koje počinju sa
old
? -
Koji od sljedećih datoteka bi odgovarao
log_[a-z]_201?_*_01.txt
?log_3_2017_Jan_01.txt
log_+_2017_Feb_01.txt
log_b_2007_Mar_01.txt
log_f_201A_Wednesday_01.txt
-
Kreirajte nekoliko globova koji odgovaraju sljedećoj listi naziva datoteka:
doc100 doc200 doc301 doc401
Istraživačke vježbe
-
Koristite
cp
man stranicu da saznate kako napraviti kopiju datoteke tako da dozvole i vrijeme modifikacije odgovaraju originalu. -
Šta radi komanda
rmdir -p
? Eksperimentirajte s njim i objasnite kako se razlikuje odrm -r
. -
NEMOJTE ZAPRAVO IZVRŠAVATI OVU KOMANDU: Šta mislite da će
rm -ri /*
učiniti? (ISKRENO, NE POKUŠAVAJTE OVO!) -
Osim korištenja
-i
, da li je moguće spriječitimv
komandu da prepiše ili zamjeni odredišne datoteke? -
Objasnite komandu
cp -u
.
Sažetak
Linux okruženje komandne linije pruža alate za upravljanje datotekama. Neki od najčešće korištenih su cp
, mv
, mkdir
, rm
i rmdir
. Ovi alati, u kombinaciji sa globovima, omogućavaju korisnicima da vrlo brzo obave mnogo posla.
Mnoge komande imaju opciju -i
, koja vas pita prije nego što bilo šta učinite. Upit (eng.prompt) vam može uštedjeti mnogo muke ako ste nešto pogrešno upisali.
Mnoge komande imaju opciju -r
. Opcija -r
obično znači rekurziju. U matematici i informatici, rekurzivna funkcija je funkcija koja koristi samu sebe u svojoj definiciji. Kada su u pitanju alati komandne linije, to obično znači primijeniti komandu na direktorij i sve u njemu.
Komande korištene u ovoj lekciji:
cat
-
Čitaj i prikaži sadržaj datoteke.
cp
-
Kopiraj datoteke i direktorij.
echo
-
Prikaži niz.
find
-
Prođite kroz stablo sistema datoteka i potražite datoteke koje odgovaraju određenom skupu kriterija.
ls
-
Prikaži svojstva datoteka i direktorija, te prikaži sadržaj direktorija.
mkdir
-
Kreiraj novi direktorij.
mv
-
Premjesti ili preimenuj datoteke ili direktorije.
pwd
-
Prikaži trenutni radni direktorij.
rm
-
Obriši datoteke i direktorije.
rmdir
-
Obriši direktorije.
touch
-
Kreiraj praznu datoteku ili ažuriraj vrijeme nastanka postojećih datoteka.
Odgovori na vođene vježbe
-
S obzirom na sljedeće, odaberite direktorije koji će biti kreirani komandom
mkdir -p /tmp/outfiles/text/today /tmp/infiles/text/today
$ pwd /tmp $ find . ./outfiles ./outfiles/text
Označeni direktoriji bi bili kreirani. Direktoriji
/tmp
,/tmp/outfiles
i/tmp/outfiles/text
već postoje, pa će ihmkdir
ignorirati./tmp
/tmp/outfiles
/tmp/outfiles/text
/tmp/outfiles/text/today
X
/tmp/infiles
X
/tmp/infiles/text
X
/tmp/infiles/text/today
X
-
Šta znači
-v
za komandemkdir
,rm
, icp
?Obično
-v
uključuje opširni izlaz. To uzrokuje da odgovarajući programi prikažu šta rade.$ rm -v a b removed 'a' removed 'b' $ mv -v a b 'a' -> 'b' $ cp -v b c 'b' -> 'c'
-
Šta se događa ako slučajno pokušate kopirati tri datoteke na istoj komandnoj liniji u datoteku koja već postoji, umjesto u direktorij?
cp
komanda će odbiti da uradi bilo šta, te će na izlazu prikazati poruku greške:$ touch a b c d $ cp a b c d cp: target 'd' is not a directory
-
Šta se događa kada koristite
mv
da premjestite direktorij u njega?Dobit ćete poruku greške koja vam govori kako
mv
ne može to uraditi.$ mv a a mv: cannot move 'a' to a subdirectory of itself, 'a/a'
-
Kako biste izbrisali sve datoteke u vašem trenutnom direktoriju koje počinju sa
old
?Koristili biste glob
old*
sarm
komandom:$ rm old*
-
Koji od sljedećih datoteka bi odgovarao
log_[a-z]_201?_*_01.txt
?log_3_2017_Jan_01.txt
log_+_2017_Feb_01.txt
log_b_2007_Mar_01.txt
log_f_201A_Wednesday_01.txt
X
$ ls log_[a-z]_201?_*_01.txt log_f_201A_Wednesday_01.txt
log_[a-z]
odgovaralog_
praćen bilo kojim malim slovima, tako da obalog_f_201A_Wednesday_01.txt
ilog_b_2007_Mar_01.txt
odgovaraju._201?
odgovara bilo kojem znaku, tako da samolog_f_201A_Wednesday_01.txt
odgovara. Na kraju*_01.txt
odgovara bilo čemu što završava sa_01.txt
, tako da preostala opcija odgovara. -
Kreirajte nekoliko globova koji odgovaraju sljedećoj listi naziva datoteka:
doc100 doc200 doc301 doc401
Postoji nekoliko solucija. Evo nekih od njih:
doc* doc[1-4]* doc?0? doc[1-4]0?
Odgovori na istraživačke vježbe
-
Koristite
cp
man stranicu da saznate kako napraviti kopiju datoteke tako da dozvole i vrijeme modifikacije odgovaraju originalu.Koristili biste
-p
opciju. Izvodak iz man stranice:$ man cp -p same as --preserve=mode,ownership,timestamps --preserve[=ATTR_LIST] preserve the specified attributes (default: mode,ownership,time‐ stamps), if possible additional attributes: context, links, xattr, all
-
Šta radi komanda
rmdir -p
? Eksperimentirajte s njim i objasnite kako se razlikuje odrm -r
.To uzrokuje da se
rmdir
ponaša slično kaomkdir -p
. Ako se proslijedi stablu praznih direktorija, sve će ih ukloniti.$ find . ./a ./a/b ./a/b/c $ rmdir -p a/b/c $ ls
-
NEMOJTE ZAPRAVO IZVRŠAVATI OVU KOMANDU: Šta mislite da će
rm -ri /*
učiniti? (ISKRENO, NE POKUŠAVAJTE OVO!)Uklonit će sve datoteke i direktorije u koje može pisati vaš korisnički nalog. Ovo uključuje sve mrežne sisteme datoteka.
-
Osim korištenja
-i
, da li je moguće spriječitimv
komandu da prepiše ili zamjeni odredišne datoteke?Da,
-n
ili--no-clobber
opcija sprječavamv
komandu da zamjeni datoteke.$ cat a a $ cat b b $ mv -n a b $ cat b b
-
Objasnite komandu
cp -u
.Opcija
-u
uzrokuje dacp
kopira datoteku samo ako odredište nedostaje ili je starije od izvornog fajla.$ ls -l total 24K drwxr-xr-x 123 emma student 12K Feb 2 05:34 .. drwxr-xr-x 2 emma student 4.0K Feb 2 06:56 . -rw-r--r-- 1 emma student 2 Feb 2 06:56 a -rw-r--r-- 1 emma student 2 Feb 2 07:00 b $ cat a a $ cat b b $ cp -u a b $ cat b b $ cp -u a c $ ls -l total 12 -rw-r--r-- 1 emma student 2 Feb 2 06:56 a -rw-r--r-- 1 emma student 2 Feb 2 07:00 b -rw-r--r-- 1 emma student 2 Feb 2 07:00 c