Kopiranje atributa datoteka
Ponekad trebamo napraviti kopiju datoteke, ali ne samo njenog sadržaja, već treba sačuvati sve atribute, poput vlasništva i pripadnosti određenoj grupi. To se uvijek može napraviti ručno služeći se naredbama "chown", "chmod" i "touch".
Kod naredbi chown i chmod, opcija je "--reference", koja određuje datoteku čiji će se atributi prekopirati. Pogledajmo:
# cp dat.txt kopija.txt
# ls -l dat.txt kopija.txt
-rw-r-xr-- 1 korisnik korisnik 174148 Mar 31 23:23 dat.txt
-rw-r-xr-- 1 root root 174148 Mar 31 23:25 kopija.txt
# chown --reference dat.txt kopija.txt
# ls -l dat.txt kopija.txt
-rw-r-xr-- 1 korisnik korisnik 174148 Mar 31 23:23 dat.txt
-rw-r-xr-- 1 korisnik korisnik 174148 Mar 31 23:25 kopija.txt
Vidimo da je naredba "cp" uspjela iskopirati mod datoteke, ali ne vlasništvo i grupu, što smo popravili s parametrom "--reference" kod poziva naredbe "chown".
Moguće je navesti više datoteka na koje ćemo primjeniti atribute jedne određene datoteke:
# ls -l kopija*
-rw-r-xr-- 1 root root 174148 Mar 31 23:41 kopija2.txt
-rw-r-xr-- 1 root root 174148 Mar 31 23:41 kopija3.txt
-rw-r-xr-- 1 korisnik korisnik 174148 Mar 31 23:25 kopija.txt
# chown --reference dat.txt kopija*
# ls -l kopija*
-rw-r-xr-- 1 korisnik korisnik 174148 Mar 31 23:41 kopija2.txt
-rw-r-xr-- 1 korisnik korisnik 174148 Mar 31 23:41 kopija3.txt
-rw-r-xr-- 1 korisnik korisnik 174148 Mar 31 23:25 kopija.txt
Vidimo da su sve tri datoteke poprimile vlasništvo datoteke dat.txt. No, što je s vremenima kreiranja i modificiranja? Pogledajmo sto kaže naredba "stat":
# stat kopija3.txt
File: `kopija3.txt'
Size: 174148 Blocks: 352 IO Block: 4096 regular file
Device: 801h/2049d Inode: 716771 Links: 1
Access: (0654/-rw-r-xr--) Uid: ( 1008/ korisnik) Gid: ( 1024/ korisnik)
Access: 2016-03-31 23:41:47.000000000 +0200
Modify: 2016-03-31 23:41:47.000000000 +0200
Change: 2016-03-31 23:42:07.000000000 +0200
Birth: -
Datoteka kopija3.txt ima MTIME 23:41 i CTIME 23:42, a nakpon primjene naredbe "touch --reference" ima sljedeće podatke:
# touch --reference dat.txt kopija3.txt
# stat kopija3.txt
File: `kopija3.txt'
Size: 174148 Blocks: 352 IO Block: 4096 regular file
Device: 801h/2049d Inode: 716771 Links: 1
Access: (0654/-rw-r-xr--) Uid: ( 1008/ korisnik) Gid: ( 1024/ korisnik)
Access: 2016-03-31 23:25:16.000000000 +0200
Modify: 2016-03-31 23:23:58.000000000 +0200
Change: 2016-03-31 23:44:03.000000000 +0200
Birth: -
Vrijeme se "vratilo unatrag", po uzoru na originalnu datoteku dat.txt:
# stat dat.txt
File: `dat.txt'
Size: 174148 Blocks: 352 IO Block: 4096 regular file
Device: 801h/2049d Inode: 716718 Links: 1
Access: (0654/-rw-r-xr--) Uid: ( 1008/ korisnik) Gid: ( 1024/ korisnik)
Access: 2016-03-31 23:25:16.000000000 +0200
Modify: 2016-03-31 23:23:58.000000000 +0200
Change: 2016-03-31 23:24:39.000000000 +0200
Birth: -
Sva ova referenciranja nisu potrebna ukoliko se sjetite da već prilikom kopiranja datoteka upotrijebite parametar "-p", odnosno "--preserve" kod naredbi "cp" i "mv". Što ovo znači? Ukoliko ukljkučite "--preserve", po "defaultu" će biti prekopirani atributi o vlasništvu, modu i vremenu kreiranja. Ovo vrijedi i za rekurzivno kopiranje. Tako možete prekopirati cijeli direktorij s parametrima "-pr" i svi će atributi biti sačuvani:
# cp -pr /dir1 /dir2
Slični se rezultati mogu dobiti i naredbom rsync, ali to već jedna "druga priča".
- Logirajte se za dodavanje komentara
- Inačica za ispis
- PDF version