БпСстСтС 15% ΠΎΡ‚ всички хостинг услуги

ВСствай умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠžΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ
Заглавия
Linux Администрация

Как Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ .tar.gz Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° командния Ρ€Π΅Π΄ Π½Π° Linux

Π€Π°ΠΉΠ»ΡŠΡ‚ .tar.gz Π΅ компрСсиран Π°Ρ€Ρ…ΠΈΠ², създадСн Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: tar (Tape Archive), която обСдинява мноТСство Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² Π΅Π΄ΠΈΠ½ Π°Ρ€Ρ…ΠΈΠ², ΠΈ gzip, която компрСсира Ρ‚ΠΎΠ·ΠΈ Π°Ρ€Ρ…ΠΈΠ² Π·Π° намаляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΌΡƒ. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π΅ прСносим, пространствСно Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π΄Π΅ Ρ„Π°ΠΊΡ‚ΠΎ стандарт Π·Π° разпространСниС Π½Π° софтуСр, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ систСмни Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия Π² практичСски всяка Linux ΠΈ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Π° срСда.

ΠšΠ°Π½ΠΎΠ½ΠΈΡ‡Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° .tar.gz Π°Ρ€Ρ…ΠΈΠ² Π΅ `tar -xzvf archive-name.tar.gz`. Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ всСки Ρ„Π»Π°Π³ β€” ΠΈ ΠΊΠΎΠ³Π° Π΄Π° сС ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ настройка ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ β€” Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° компСтСнтния систСмСн администратор ΠΎΡ‚ някой, ΠΊΠΎΠΉΡ‚ΠΎ сляпо ΠΊΠΎΠΏΠΈΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.

Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° .tar.gz

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠ²Π°Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ с ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ `.tar.gz` (извСстСн ΡΡŠΡ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ `.tgz`) Π΅ Π΄Π²ΡƒΠ΅Ρ‚Π°ΠΏΠ΅Π½ процСс:

  1. `tar` ΡΡŠΠ±ΠΈΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°ΠΏΠ°Π·Π²Π° структурата Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π°, собствСността ΠΈ символнитС Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ плосък Ρ„Π°ΠΉΠ».
  2. `gzip` компрСсира Ρ‚ΠΎΠ·ΠΈ плосък Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° DEFLATE, ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ постига 60–70% намаляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈ тСкстово ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.

Π’Π°Π·ΠΈ Π΄Π²ΡƒΠ΅Ρ‚Π°ΠΏΠ½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ `-z` (gzip) ΠΈ `-x` (ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅) Π΄Π° са Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ ΠΈ Π΄Π²Π°Ρ‚Π°. Нито Π΅Π΄ΠΈΠ½ инструмСнт сам ΠΏΠΎ сСбС си Π½Π΅ сС справя с цялата Π·Π°Π΄Π°Ρ‡Π°. ΠŸΡ€ΠΈ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ Linux систСми `tar` Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½, Π·Π° Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π° компрСсия Ρ‡Ρ€Π΅Π· `–auto-compress` ΠΈΠ»ΠΈ просто Ρ‡Ρ€Π΅Π· Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° магичСскитС Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ Π½Π° Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎΡ‚ΠΎ посочванС Π½Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΠΎ-бСзопасна ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π² скриптовС ΠΈ Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ Π·Π° автоматизация.

ОсновСн синтаксис ΠΈ справочник Π·Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅

β€œ`bash

tar -xzvf archive-name.tar.gz

β€œ`

Π€Π»Π°Π³Π”ΡŠΠ»Π³Π° формаЀункция
`-x``–extract`Π˜Π·Π²Π»ΠΈΡ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΠ²Π°
`-z``–gzip`Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π° Π°Ρ€Ρ…ΠΈΠ²Π° Ρ‡Ρ€Π΅Π· gzip дСкомпрСсия
`-v``–verbose`ΠžΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π° всяко Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΌΡƒ
`-f``–file=ARCHIVE`Π£ΠΊΠ°Π·Π²Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° архивния Ρ„Π°ΠΉΠ» (трябва Π΄Π° ΠΏΡ€Π΅Π΄Ρ…ΠΎΠΆΠ΄Π° нСпосрСдствСно Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅)
`-C``–directory=DIR`Π˜Π·Π²Π»ΠΈΡ‡Π° Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° Ρ†Π΅Π»Π΅Π²Π° дирСктория
`-t``–list`Π˜Π·Π±Ρ€ΠΎΡΠ²Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π° Π±Π΅Π· ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅
`-p``–preserve-permissions`Π’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ
`–strip-components=N`β€”ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π° N Π²ΠΎΠ΄Π΅Ρ‰ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° ΠΏΡŠΡ‚Ρ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π°

Π’Π°ΠΆΠ΅Π½ Π΄Π΅Ρ‚Π°ΠΉΠ»: Π€Π»Π°Π³ΡŠΡ‚ `-f` трябва Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° Π΅ послСдният Ρ„Π»Π°Π³ ΠΏΡ€Π΅Π΄ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅. ΠŸΠΈΡΠ°Π½Π΅Ρ‚ΠΎ Π½Π° `tar -xvzf` ΠΈ `tar -xzvf` са ΠΈ Π΄Π²Π΅Ρ‚Π΅ Π²Π°Π»ΠΈΠ΄Π½ΠΈ, Π½ΠΎ `tar -fxzv archive.tar.gz` Ρ‰Π΅ сС ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ `-f` ΠΎΡ‡Π°ΠΊΠ²Π° слСдващият Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π΄Π° бъдС ΠΏΡŠΡ‚ΡΡ‚ Π΄ΠΎ Π°Ρ€Ρ…ΠΈΠ²Π°.

Π ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ°

1. ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»

ΠŸΡ€ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ настолни Linux дистрибуции натиснСтС `Ctrl + Alt + T`. На ΡΡŠΡ€Π²ΡŠΡ€ Π±Π΅Π· Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс, Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Ρ‡Ρ€Π΅Π· SSH, Π²Π΅Ρ‡Π΅ стС Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π½Π° сСсия.

2. НамСрСтС Π°Ρ€Ρ…ΠΈΠ²Π° си

β€œ`bash

ls -lh /path/to/directory

β€œ`

ΠŸΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Ρ‚Π΅, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°, ΠΈ ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΌΡƒ. Π€Π»Π°Π³ΡŠΡ‚ `-h` ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π² Ρ‡Π΅Ρ‚ΠΈΠΌ Π·Π° Ρ‡ΠΎΠ²Π΅ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (KB, MB, GB).

3. Π˜Π·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° място

НавигирайтС Π΄ΠΎ дирСкторията, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰Π° Π°Ρ€Ρ…ΠΈΠ²Π°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅:

β€œ`bash

cd /path/to/directory

tar -xzvf archive-name.tar.gz

β€œ`

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Ρ‰Π΅ сС появят Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π½Π° дирСктория, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π² поддирСктория, която отразява Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° структура Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π°.

4. Π˜Π·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° дирСктория

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ„Π»Π°Π³Π° `-C`, Π·Π° Π΄Π° прСнасочитС ΠΈΠ·Ρ…ΠΎΠ΄Π° към ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ρ†Π΅Π»Π΅Π²ΠΈ ΠΏΡŠΡ‚. Ако дСстинацията Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°, ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ я ΠΏΡŠΡ€Π²ΠΎ:

β€œ`bash

mkdir -p /opt/myapp

tar -xzvf archive-name.tar.gz -C /opt/myapp

β€œ`

Π€Π»Π°Π³ΡŠΡ‚ `-p` ΠΏΡ€ΠΈ `mkdir` прСдотвратява Π³Ρ€Π΅ΡˆΠΊΠΈ, Π°ΠΊΠΎ дирСкторията Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° β€” Π΄ΠΎΠ±ΡŠΡ€ Π½Π°Π²ΠΈΠΊ Π² скриптовСтС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΠ² Π½Π° ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

β€œ`bash

mkdir -p ~/deployments/webapp-v2

tar -xzvf webapp-v2.tar.gz -C ~/deployments/webapp-v2

β€œ`

5. Π˜Π·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π±Π΅Π· ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄

Π’ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ скриптовС, cron Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ CI/CD Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ подробният ΠΈΠ·Ρ…ΠΎΠ΄ създава ΡˆΡƒΠΌ Π² Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅. ΠŸΡ€ΠΎΠΏΡƒΡΠ½Π΅Ρ‚Π΅ Ρ„Π»Π°Π³Π° `-v`:

β€œ`bash

tar -xzf archive-name.tar.gz -C /opt/myapp

β€œ`

Π’ΠΎΠ²Π° Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½Π°Ρ‚Π° Ρ„ΠΎΡ€ΠΌΠ° Π² производствСната автоматизация. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΈΡΡ‚ Ρ€Π΅ΠΆΠΈΠΌ Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ трябва Π΄Π° ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС записват.

Π˜Π·Π±Ρ€ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π° Π±Π΅Π· ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ Π½Π΅ΠΏΠΎΠ·Π½Π°Ρ‚ Π°Ρ€Ρ…ΠΈΠ² β€” особСно ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ ΠΎΡ‚ външСн ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ β€” Π²ΠΈΠ½Π°Π³ΠΈ провСрявайтС ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΡƒ ΠΏΡŠΡ€Π²ΠΎ. Някои Π°Ρ€Ρ…ΠΈΠ²ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π° ΠΈΠ»ΠΈ Π±Π΅Π· дирСктория ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΡ€Π½ΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎ Π΄Π° Ρ€Π°Π·ΠΏΡ€ΡŠΡΠ½Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° Π²ΠΈ систСма.

β€œ`bash

tar -tzvf archive-name.tar.gz

β€œ`

Ако ΠΈΠ·Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡŠΡ‚ΠΈΡ‰Π°, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‰ΠΈ с `/` ΠΈΠ»ΠΈ `..`, ΠΈΠ·Π²Π»ΠΈΡ‡Π°ΠΉΡ‚Π΅ с Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `–strip-components` Π·Π° санитизиранС Π½Π° ΠΏΡŠΡ‚ΠΈΡ‰Π°Ρ‚Π°.

Π—Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° с дирСктория ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΡ€Π½ΠΎ Π½ΠΈΠ²ΠΎ:

β€œ`bash

tar -tzf archive-name.tar.gz | head -20

β€œ`

Ако всички ΠΏΡŠΡ‚ΠΈΡ‰Π° сподСлят ΠΎΠ±Ρ‰ прСфикс (Π½Π°ΠΏΡ€. `myapp-1.0/`), ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π΅ чисто. Ако Π½Π΅ β€” ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ спСциална дирСктория ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ Π² нСя с `-C`.

Π Π°Π±ΠΎΡ‚Π° с ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° ΠΏΡŠΡ‚Ρ

ЧСста Ρ€Π΅Π°Π»Π½Π° ситуация: изтСглятС ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ tarball ΠΎΡ‚ GitHub, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±Π²ΠΈΠ²Π° всичко Π² `project-main/`, Π½ΠΎ искатС ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² `/opt/project/` Π±Π΅Π· Ρ‚ΠΎΠ²Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π²Π»Π°Π³Π°Π½Π΅.

β€œ`bash

tar -xzvf project-main.tar.gz -C /opt/project –strip-components=1

β€œ`

`–strip-components=1` ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° ΠΏΡŠΡ€Π²ΠΈΡ сСгмСнт Π½Π° ΠΏΡŠΡ‚Ρ ΠΎΡ‚ всСки ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ Ρ„Π°ΠΉΠ», ΠΊΠ°Ρ‚ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ β€žΡ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°β€ дирСкторията ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΡ€Π½ΠΎ Π½ΠΈΠ²ΠΎ. Π’ΠΎΠ²Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ Π² скриптовС Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΈ Dockerfiles.

Π˜Π·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ дирСктория ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΠ²

НС Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚Π΅ всичко. Π—Π° Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Ρ„Π°ΠΉΠ»:

β€œ`bash

tar -xzvf archive-name.tar.gz path/to/specific-file.conf

β€œ`

Π—Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° дирСктория ΠΈ цялото ΠΉ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅:

β€œ`bash

tar -xzvf archive-name.tar.gz path/to/specific-directory/

β€œ`

ΠŸΡŠΡ‚ΡΡ‚ трябва Π΄Π° съвпада Ρ‚ΠΎΡ‡Π½ΠΎ с Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ `tar -tzf` ΠΏΠΎΠΊΠ°Π·Π²Π°. Π’Π°Π·ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π΅ Π±Π΅Π·Ρ†Π΅Π½Π½Π° ΠΏΡ€ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» ΠΎΡ‚ голям Π°Ρ€Ρ…ΠΈΠ² Π·Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅, Π±Π΅Π· Π΄Π° сС Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΈ Π΄Π°Π½Π½ΠΈ.

Π˜Π·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° .tar Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π±Π΅Π· gzip компрСсия

ОбикновСн `.tar` Ρ„Π°ΠΉΠ» няма слой Π½Π° компрСсия. ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ изцяло Ρ„Π»Π°Π³Π° `-z`:

β€œ`bash

tar -xvf archive-name.tar

β€œ`

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅: .tar.gz срСщу Π΄Ρ€ΡƒΠ³ΠΈ чСсто срСщани Π°Ρ€Ρ…ΠΈΠ²Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ

Π€ΠΎΡ€ΠΌΠ°Ρ‚Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° компрСсияБтСпСн Π½Π° ΠΊΠΎΠΌΠΏΡ€Π΅ΡΠΈΡΠ‘ΠΊΠΎΡ€ΠΎΡΡ‚Π˜Π·ΠΈΡΠΊΠ²Π° Tar
Gzip tarball`.tar.gz` / `.tgz`DEFLATE (gzip)Π£ΠΌΠ΅Ρ€Π΅Π½Π°Π‘ΡŠΡ€Π·Π°Π”Π°
Bzip2 tarball`.tar.bz2`Burrows-Wheeler (bzip2)ВисокаБавнаДа
XZ tarball`.tar.xz`LZMA2 (xz)Много високаМного Π±Π°Π²Π½Π°Π”Π°
Zstandard tarball`.tar.zst`ZstandardΠ’ΠΈΡΠΎΠΊΠ°ΠœΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·Π°Π”Π°
ZIP Π°Ρ€Ρ…ΠΈΠ²`.zip`DEFLATEΠ£ΠΌΠ΅Ρ€Π΅Π½Π°Π‘ΡŠΡ€Π·Π°ΠΠ΅
ОбикновСн tar`.tar`НямаНямаНай-Π±ΡŠΡ€Π·Π°Π”Π°

ΠšΠ»ΡŽΡ‡ΠΎΠ²ΠΎ наблюдСниС: `.tar.xz` Π΅ Π²Π΅Ρ‡Π΅ прСдпочитаният Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Linux дистрибуции (ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ядрото, ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ tarballs Π½Π° RPM/DEB) Π·Π°Ρ€Π°Π΄ΠΈ ΠΏΡ€Π΅Π²ΡŠΠ·Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° си стСпСн Π½Π° компрСсия. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° `.tar.gz` остава Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€Π°Ρ‰ Π·Π° разпространСниС с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Π°Π΄ΠΈ унивСрсалната ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° инструмСнтариума ΠΈ скоростта Π½Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅. `.tar.zst` (Zstandard) Π½Π°Π±ΠΈΡ€Π° популярност Π² ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ дистрибуции ΠΊΠ°Ρ‚ΠΎ Arch Linux Π·Π°Ρ€Π°Π΄ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΈΡ си баланс ΠΌΠ΅ΠΆΠ΄Ρƒ стСпСн Π½Π° компрСсия ΠΈ скорост.

Π—Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Ρ‚Π΅ `-z` с подходящия Ρ„Π»Π°Π³:

β€œ`bash

tar -xjvf archive.tar.bz2 # bzip2

tar -xJvf archive.tar.xz # xz/lzma

tar -x –zstd -vf archive.tar.zst # zstandard (GNU tar 1.31+)

β€œ`

Π—Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ собствСност Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅

ΠŸΡ€ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΠ²ΠΈ, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ систСмни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, скриптовС ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° прилоТСния, Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π΅ ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

β€œ`bash

tar -xzvpf archive-name.tar.gz

β€œ`

Π€Π»Π°Π³ΡŠΡ‚ `-p` инструктира tar Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π‘Π΅Π· Π½Π΅Π³ΠΎ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° umask Π½Π° тСкущия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π±Π΅Π·ΡˆΡƒΠΌΠ½ΠΎ Π΄Π° Π½Π°Ρ€ΡƒΡˆΠΈ изпълними скриптовС ΠΈΠ»ΠΈ setuid Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π—Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° собствСността (изисква root):

β€œ`bash

sudo tar -xzvpf archive-name.tar.gz –same-owner

β€œ`

Π’ΠΎΠ²Π° Π΅ ΠΎΡ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° систСмни Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия ΠΈΠ»ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° собствСност Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»/Π³Ρ€ΡƒΠΏΠ° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†ΠΈ Π½Π° сигурността.

ЧСсти Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅

`tar: Error is not recoverable: exiting now`

ΠΡ€Ρ…ΠΈΠ²ΡŠΡ‚ Π΅ ΠΏΠΎΠ²Ρ€Π΅Π΄Π΅Π½ ΠΈΠ»ΠΈ изтСглянСто Π΅ нСпълно. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ цСлостта Π½Π° Ρ„Π°ΠΉΠ»Π° с `md5sum` ΠΈΠ»ΠΈ `sha256sum` спрямо ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π°Ρ‚Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° сума, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ.

`tar: Skipping to next header` / `tar: Archive contains obsolescent base-64 headers`

Частична ΠΏΠΎΠ²Ρ€Π΅Π΄Π° Π² Π°Ρ€Ρ…ΠΈΠ²Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ частично ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ с `–ignore-zeros`, Π½ΠΎ Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈΠ·Ρ…ΠΎΠ΄Π° ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ нСпълСн.

`gzip: stdin: not in gzip format`

Π€Π°ΠΉΠ»ΡŠΡ‚ ΠΈΠΌΠ° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ `.tar.gz`, Π½ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π½Π΅ Π΅ gzip-компрСсиран. Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ `file archive-name.tar.gz` Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° рСалния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. МоТС Π΄Π° Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ `.tar`, `.zip` ΠΈΠ»ΠΈ `.bz2` Ρ„Π°ΠΉΠ» с Π³Ρ€Π΅ΡˆΠ½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅.

`Cannot open: No such file or directory`

Или ΠΏΡŠΡ‚ΡΡ‚ Π΅ Π³Ρ€Π΅ΡˆΠ΅Π½, ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». ΠžΠ³Ρ€Π°Π΄Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ Π² ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ: `tar -xzvf "my archive.tar.gz"`.

ΠžΡ‚ΠΊΠ°Π·Π°Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅

НяматС ΠΏΡ€Π°Π²ΠΎ Π½Π° запис Π² Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° дирСктория. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `sudo` ΠΈΠ»ΠΈ смСнСтС Ρ†Π΅Π»Ρ‚Π° с `-C` към дирСктория, която ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π°Ρ‚Π΅.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ случаи Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° VPS ΠΈΠ»ΠΈ dedicated ΡΡŠΡ€Π²ΡŠΡ€

Π’ срСда Π·Π° VPS хостинг Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ‚Π΅ `.tar.gz` сС появяват постоянно: Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° вСрсии Π½Π° прилоТСния, Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° дъмповС Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° софтуСр, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ ΠΎΡ‚ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄.

Π’ΠΈΠΏΠΈΡ‡Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° Linux ΡΡŠΡ€Π²ΡŠΡ€:

β€œ`bash

Download release archive

wget https://example.com/releases/myapp-2.1.0.tar.gz

Verify integrity

sha256sum myapp-2.1.0.tar.gz

Inspect contents before extracting

tar -tzf myapp-2.1.0.tar.gz | head -30

Extract to deployment directory

sudo mkdir -p /var/www/myapp

sudo tar -xzvpf myapp-2.1.0.tar.gz -C /var/www/myapp –strip-components=1

Set correct ownership

sudo chown -R www-data:www-data /var/www/myapp

β€œ`

На Dedicated ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ ΠΌΠ°Ρ‰Π°Π±Π½ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° `tar` с Ρ‚Ρ€ΡŠΠ±ΠΈ избягва изцяло записванСто Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° диска:

β€œ`bash

Create and stream a compressed archive directly over SSH to a remote server

tar -czvf – /var/www/html | ssh user@backup-server "cat > /backups/html-$(date +%F).tar.gz"

β€œ`

Π’ΠΎΠ·ΠΈ шаблон Π΅ особСно Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½, ΠΊΠΎΠ³Π°Ρ‚ΠΎ дисковото пространство Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ скоростта Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π΅ ΠΎΡ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Ако управляватС срСда Π·Π° ΡƒΠ΅Π± хостинг Ρ‡Ρ€Π΅Π· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π», инструмСнти ΠΊΠ°Ρ‚ΠΎ VPS с cPanel прСдоставят ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ `.tar.gz` Ρ‡Ρ€Π΅Π· интСрфСйса Π½Π° File Manager, Π½ΠΎ основната ΠΊΠΎΠΌΠ°Π½Π΄Π° `tar` Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π·Π° скриптирани Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ процСси.

ΠŸΡ€ΠΈ хостванС Π½Π° прилоТСния, обслуТващи Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ HTTPS, ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ с ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ SSL сСртификати Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚Π΅ ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Ρ‚Π΅, сС обслуТват сигурно ΠΎΡ‚ ΠΏΡŠΡ€Π²Π°Ρ‚Π° заявка.

Π—Π° Π΅ΠΊΠΈΠΏΠΈ, управляващи мноТСство срСди, VPS ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° опростят ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚ Π² голяма стСпСн Π½Π° `.tar.gz` Π°Ρ€Ρ…ΠΈΠ²ΠΈ.

Π‘ΡŠΡ€Π·Π° справка: Най-ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ tar ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ

β€œ`bash

Extract .tar.gz to current directory

tar -xzvf archive.tar.gz

Extract to specific directory

tar -xzvf archive.tar.gz -C /target/dir

Extract silently (no verbose output)

tar -xzf archive.tar.gz -C /target/dir

List contents without extracting

tar -tzvf archive.tar.gz

Extract single file

tar -xzvf archive.tar.gz path/inside/archive/file.conf

Extract and strip top-level directory

tar -xzvf archive.tar.gz -C /target/dir –strip-components=1

Extract preserving permissions and ownership (as root)

sudo tar -xzvpf archive.tar.gz –same-owner

Extract .tar.bz2

tar -xjvf archive.tar.bz2

Extract .tar.xz

tar -xJvf archive.tar.xz

β€œ`

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π·Π° тСхничСски Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°
Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° сС Π²ΠΈΠΆΠ΄Π° Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊΡŠΡ‚`tar -xzvf archive.tar.gz`
Автоматизиран скрипт ΠΈΠ»ΠΈ cron Π·Π°Π΄Π°Ρ‡Π°`tar -xzf archive.tar.gz -C /target`
НСпозната структура Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π°, ΠΏΡŠΡ€Π²ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅`tar -tzf archive.tar.gzhead -20`
Π Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π² дирСктория Π±Π΅Π· ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΡ€Π½ΠΎ Π½ΠΈΠ²ΠΎ`tar -xzf archive.tar.gz -C /target –strip-components=1`
Π’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° систСмно Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ с Ρ‚ΠΎΡ‡Π½ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ`sudo tar -xzvpf archive.tar.gz –same-owner`
Π’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» ΠΎΡ‚ голям Π°Ρ€Ρ…ΠΈΠ²`tar -xzf archive.tar.gz path/to/file`
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° цСлостта Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π° ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅`tar -tzf archive.tar.gz > /dev/null && echo "OK"`

Π§Π—Π’

Каква Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ .tar.gz ΠΈ .tgz?

Π’Π΅ са ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ. `.tgz` Π΅ просто ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ псСвдоним с Π΅Π΄Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π·Π° `.tar.gz`, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ систСми ΠΈΠ»ΠΈ инструмСнтитС ΠΈΠΌΠ°Ρ‚ ограничСния Π·Π° Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ. И Π΄Π²Π°Ρ‚Π° сС ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚ с Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° `tar -xzvf`.

Π—Π°Ρ‰ΠΎ `tar -xzvf` понякога ΠΈΠ·Π²Π»ΠΈΡ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° дирСктория вмСсто Π² поддирСктория?

Π’ΠΎΠ²Π° сС случва, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΡŠΡ‚ Π΅ създадСн Π±Π΅Π· ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° с дирСктория ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΡ€Π½ΠΎ Π½ΠΈΠ²ΠΎ. Π’ΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°ΠΉΡ‚Π΅ `tar -tzf archive.tar.gz | head -20` ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅. Ако ΠΏΡŠΡ‚ΠΈΡ‰Π°Ρ‚Π° Π½Π΅ сподСлят ΠΎΠ±Ρ‰ прСфикс, ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ спСциална дирСктория ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `-C` Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π² нСя, прСдотвратявайки Ρ€Π°Π·ΠΏΡ€ΡŠΡΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Мога Π»ΠΈ Π΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ° .tar.gz Ρ„Π°ΠΉΠ» Π±Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° tar?

Π”Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡŠΡ€Π²ΠΎ Π΄Π° дСкомпрСсиратС gzip слоя с `gunzip archive.tar.gz`, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° `archive.tar`, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ с `tar -xvf archive.tar`. Някои систСми ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΈ `zcat archive.tar.gz | tar -xvf -` Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ прСнасочванС Π½Π° дСкомпрСсията към tar. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° `tar -xzvf` Π² Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π½Π°ΠΉ-СфСктивният ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

Забавя Π»ΠΈ Ρ„Π»Π°Π³ΡŠΡ‚ `-v` ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ ΠΏΡ€ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈ?

НСзначитСлно, Π΄Π°. ΠŸΡ€ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈ, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ стотици хиляди ΠΌΠ°Π»ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° всяко Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ Π² stdout ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΠΌΠΎ Π²Ρ€Π΅ΠΌΠ΅. Π’ чувствитСлни към производитСлността ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ контСксти Π²ΠΈΠ½Π°Π³ΠΈ пропускайтС `-v`.

Как Π΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ° .tar.gz Ρ„Π°ΠΉΠ» ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», Π±Π΅Π· Π΄Π° смСням Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ?

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `sudo -u targetuser tar -xzvf archive.tar.gz -C /target/dir`. Π’ΠΎΠ²Π° изпълнява процСса Π½Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ ΠΏΠΎΠ΄ идСнтичността Π½Π° цСлСвия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», ΠΊΠ°Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ са ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π°Π½ΠΈ, Π±Π΅Π· Π΄Π° сС изисква пълна смяна Π½Π° потрСбитСля Ρ‡Ρ€Π΅Π· `su`.