TAR - основни команди
В тази кратка статия ще разгледам основните функции при работа с tar. Няма да навлизам в деатили, защото винаги можете да напишете
$ tar --help или $ man tar
и да прочетете в детаили всички опции и комбинации от ключове за програмата
ДА ЗАПОЧНЕМ СЪС СЪЗДАВАНЕТО НА АРХИВ.
TAR сам по себе си не компресира файловете, които желаете. Той просто създава един файл (архив), в който се съдържат желаните от вас обекти. Примерно папка с всички нейни файлове и подпапки.
За да направите архив изпълнявате командата в следния вид:
$ tar cvf archive.tar /папка-за-архивиране
Ако изпълните командата в текущият и вид, ще се създаде архив с име archive.tar в папката, в който се намира, съдържащ /папка-за-архивиране
Тук cfv идва от:
-c - create
-v - verbose - т.е. на екранът ви ще се изписва какво се обработва (архивира)
-f - file - т.е. указваме кой е файлът
Също така, за ваше улеснение, можете да създавате файлове, като задавате и пътищата например:
$ tar cvf /home/123/archive.tar /папка1/папка2
Ако изпълните командата в текущият и вид, ще се създаде архив с име archive.tar намиращ се в /home/123 в която се намира, съдържащ всичко от ПАПКА2, която се намира в ПАПКА1
Сега да разгледаме вариянтът, при който искаме освен да създаден архив и да компресираме съдържанието. За целта ще използваме последните примери с допълнителни опции а именно:
$ tar cvfz /home/123/archive.tar.gz /папка1/папка2
Забележете, че тук имаме 2 допълнителни неща а именно:
-z - zipped - да се архивира използвайки GZIP
-разширението на файлът е .tar.gz
-j - да се архивира използвайки друг тип компресиия а именно BZ2
-разширението на файлът е .tar.bz2
ДА ПРОДЪЛЖИМ С ИЗВЛИЧАНЕТО НА АРХИВ.
За да извлечете съдържанието на архив, трябва да изпълнтие следната команда:
$ tar xvf archive.tar
В разгледаният пример, съдържанието на archive.tar, ще се извлече в текущата директория, в която се намирате. Ако файлът е и компресиран, командата добива следният вид:
$ tar xvfz archive.tar.gz
Тук може би пак ви прави впечатление наличието на tar.gz в разширението и z в ключовите опции на tar. Също така важно е да ви кажа, че основната разлика идва от ключът -х, който идва от EXTRACT
Ако желаете да извлечете съдържанието на archive.tar.gz, намиращ се в /home/123 примерно в папка /home/345, то командата придобива следният вид:
$ tar xvfz /home/123/archive.tar.gz /home/345
Извличане само на файл от архив:
За да извлечем само един файл от архивът archive.tar с име foo.txt изпълняваме:
$ tar -xvf archive.tar foo.txt
Така foo.txt ще се изтегли в текущата папка в която се намираме. Съответно ако желаете можете да посочите пътищата. В следващяит приемер ще извлечем foo.txt, от архив archive.tar.gz, който е и компресиран, намира се в /home/123 и ще извличаме в /home/345
$ tar -xzvf /home/123/archive.tar.gz /home/345/foo.txt
Извличане само на папка от архив:
За да пресстана да се повтарям, само ще покажа пример за извличане в папката, в която се намираме. Ще извличаме папка etc от архив archive.tar.gz, който е компресиран и се намира в /home/123.
$ tar -xvfz /home/123/archive.tar.gz etc
И една последна добавка. Когато връщате да кажем резервно копие на някоя система, важно е да запазите правата на папките и файловете, които възстановявате. Осван права, ще се възстановят и собстветниците на файловете и папките. За тази цел естествено трявба да сте root, когато връщате с тази опция. А самата опиция е "-p"
-p, --insecure, --preserve-permissions
(x mode only) Preserve file permissions. Attempt to restore the
full permissions, including owner, file modes, file flags and
ACLs, if available,
Ето и пример: