Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка Linux. ПолноС руководство». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 48

Автор Уильям Шоттс

ИспользованиС tar Π² сочСтании с find прСдоставляСт ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ всСй систСмы. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ find для поиска Ρ„Π°ΠΉΠ»ΠΎΠ², Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ…, Ρ‡Π΅ΠΌ эталонный Ρ„Π°ΠΉΠ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ², содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΠ²Π°, ΠΏΡ€ΠΈ этом прСдполагаСтся, Ρ‡Ρ‚ΠΎ врСмя послСднСго измСнСния эталонного Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ сразу послС создания Π°Ρ€Ρ…ΠΈΠ²Π°.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° tar способна Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный Π²Π²ΠΎΠ΄ ΠΈ стандартный Π²Ρ‹Π²ΠΎΠ΄. НапримСр:

[ [email protected] foo]$ cd

[ [email protected] ~]$ find playground -name 'file-A' | tar cf - --files-from=- | gzip > playground.tgz

Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° find создаСт список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ tar. Когда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ tar пСрСдаСтся имя Ρ„Π°ΠΉΠ»Π° - (дСфис), ΠΏΠΎΠ΄ Π½ΠΈΠΌ подразу­мСваСтся стандартный Π²Π²ΠΎΠ΄ ΠΈΠ»ΠΈ стандартный Π²Ρ‹Π²ΠΎΠ΄, Π² зависимости ΠΎΡ‚ контСкста. (ΠšΡΡ‚Π°Ρ‚ΠΈ, соглашСниС ΠΎΠ± использовании дСфиса (-) для прСдставлСния стандартного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.) ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --files-from (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эквивалСнтным ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -T) заставляСт tar Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ список ΠΏΡƒΡ‚Π΅ΠΉ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Π° Π½Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. НаконСц, Π°Ρ€Ρ…ΠΈΠ², ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ tar, пСрСдаСтся ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ gzip, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сТатый Π°Ρ€Ρ…ΠΈΠ² playground.tgz. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .tgz ΠΏΠΎ общСпринятому соглашСнию ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для tar-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ², сТатых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ gzip. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .tar.gz.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅, для сТатия Π°Ρ€Ρ…ΠΈΠ²Π° использовалась внСшняя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° gzip, ΠΎΠ΄Π½Π°ΠΊΠΎ соврСмСнныС GNU-вСрсии tar ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ gzip- ΠΈ bzip2-сТатия своими встроСнными срСдствами, для Ρ‡Π΅Π³ΠΎ слуТат ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ z ΠΈ j соотвСтствСнно. Взяв Π·Π° основу ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

[ [email protected] ~]$ find playground -name 'file-A' | tar czf playground.tgz -T -

Если, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², понадобится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ², сТатый Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ bzip2, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

[ [email protected] ~]$ find playground -name 'file-A' | tar cjf playground.tbz -T -

ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π·Π°ΠΌΠ΅Π½Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° сТатия z Π½Π° j (ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° .tbz, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ для сТатия использовался Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ bzip2), ΠΌΡ‹ задСйствовали bzip2-сТатиС.

Π”Ρ€ΡƒΠ³ΠΎΠΉ интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ стандартного Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ tar связан с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами ΠΏΠΎ сСти. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ имССтся Π΄Π²Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСм ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ tar ΠΈ ssh. Π’ этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ систСмы (с ΠΈΠΌΠ΅Π½Π΅ΠΌ remote-sys Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅) Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ:

[ [email protected] ~]$ mkdir remote-stuff

[ [email protected] ~]$ cd remote-stuff

[ [email protected] remote-stuff]$ ssh remote-sys 'tar cf - Documents' | tar xf -

[email protected]'s password:

[ [email protected] remote-stuff]$ ls

Documents

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ скопировали ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Documents ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ систСмы remote-sys Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ remote-stuff Π² локальной систСмС. Как это ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ? Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ запустили ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ tar Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ систСмС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ssh. Как Π²Ρ‹ навСрняка ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, ssh позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π² сСти ΠΈ Β«ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒΒ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² локальной систСмС β€” стандартный Π²Ρ‹Π²ΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ систСмС, пСрСсылаСтся Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ систСму для ΠΎΠ±Π·ΠΎΡ€Π°. ΠœΡ‹ воспользовались этой ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ заставили tar ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² (Ρ€Π΅ΠΆΠΈΠΌ c) ΠΈ вывСсти Π΅Π³ΠΎ Π½Π΅ Π² Ρ„Π°ΠΉΠ», Π° Π² стандартный Π²Ρ‹Π²ΠΎΠ΄ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ f с дСфисом Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°), вслСдствиС Ρ‡Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΠ² пСрСдаСтся Ρ‡Π΅Ρ€Π΅Π· ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ, созданный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ssh, локальной систСмС. Π’ локальной систСмС ΠΌΡ‹ Π²Ρ‹Π·Π²Π°Π»ΠΈ tar с Ρ†Π΅Π»ΡŒΡŽ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² (Ρ€Π΅ΠΆΠΈΠΌ x), ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ со стандартного Π²Π²ΠΎΠ΄Π° (всС Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ f с дСфисом Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°).

zip β€” ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ сТатиС Ρ„Π°ΠΉΠ»ΠΎΠ²


ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° zip ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ являСтся ΠΈ инструмСнтом сТатия, ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Π·Π½Π°ΠΊΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Windows β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ создаСт Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .zip. Однако Π² Linux Ρ‡Π°Ρ‰Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сТатия gzip, Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ мСсто Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ bzip2. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ zip Π² основном для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с систСмами Windows, Π° Π½Π΅ ΠΊΠ°ΠΊ основной инструмСнт сТатия ΠΈ архивирования.

Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° zip ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

zip ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сТатый_Ρ„Π°ΠΉΠ» Ρ„Π°ΠΉΠ»...

НапримСр, Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ zip-Π°Ρ€Ρ…ΠΈΠ² нашСй пСсочницы:

[ [email protected] ~]$ zip -r playground.zip playground

Π‘Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° -r (ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²) Π² Π°Ρ€Ρ…ΠΈΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ playground (Π±Π΅Π· своСго содСрТимого). Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .zip добавляСтся ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° автоматичСски, Π° ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для наглядности.

Π’ процСссС создания zip-Π°Ρ€Ρ…ΠΈΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° zip ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сообщСний, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

adding: playground/dir-020/file-Z (stored 0%)

adding: playground/dir-020/file-Y (stored 0%)

adding: playground/dir-020/file-X (stored 0%)

adding: playground/dir-087/ (stored 0%)

adding: playground/dir-087/file-S (stored 0%)

Π­Ρ‚ΠΈ сообщСния ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ состояниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π°Ρ€Ρ…ΠΈΠ². zip добавляСт Ρ„Π°ΠΉΠ»Ρ‹ Π² Π°Ρ€Ρ…ΠΈΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: Π»ΠΈΠ±ΠΎ Β«storeΒ» (простоС сохранСниС) β€” Π±Π΅Π· сТатия, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅, Π»ΠΈΠ±ΠΎ Β«deflateΒ» β€” со сТатиСм. ЧисловоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° добавлСния, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ сТатия. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² нашСй пСсочницС хранятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пустыС Ρ„Π°ΠΉΠ»Ρ‹, сТатиС ΠΈΡ… содСрТимого Π½Π΅ производится.

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ содСрТимого ΠΈΠ· zip-Π°Ρ€Ρ…ΠΈΠ²Π° выполняСтся просто β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ unzip:

[ [email protected] ~]$ cd foo

[ [email protected] foo]$ unzip ../playground.zip

Одно Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ zip (ΠΎΡ‚ tar) состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² сущСствуСт, ΠΎΠ½ дополняСтся, Π° Π½Π΅ замСщаСтся. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Ρ€Ρ…ΠΈΠ² сохраняСтся, Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π½Π΅Π³ΠΎ, Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ β€” Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° unzip позволяСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ…, достаточно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΉ имя ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ нас Ρ„Π°ΠΉΠ»Π°:

[ [email protected] ~]$ unzip -l playground.zip playground/dir-087/file-Z

Archive: ./playground.zip

Length Date Time Name

-------- ---- ---- ----

0 10-05-12 09:25 playground/dir-087/file-Z

-------- -------

0 1 file

[ [email protected] ~]$ cd foo

[ [email protected] foo]$ unzip ../playground.zip playground/dir-087/file-Z

Archive: ../playground.zip

replace playground/dir-087/file-Z? [y]es, [n]o, [A]ll, [N]one, [r]ename: y

extracting: playground/dir-087/file-Z

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° -l ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° unzip просто Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ содСрТимом Π°Ρ€Ρ…ΠΈΠ²Π°, Π½Π΅ извлСкая Ρ„Π°ΠΉΠ». Если имя Ρ„Π°ΠΉΠ»Π° (ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²) Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, unzip Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ список всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π°Ρ€Ρ…ΠΈΠ²Π΅. Для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -v. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π° обнаруТиваСтся ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Подобно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ tar zip ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄, хотя рСализация этой возмоТности ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° [email protected] ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ zip ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ пСрСдаСтся список ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ²:

[ [email protected] foo]$ cd

[ [email protected] ~]$ find playground -name "file-A" | zip [email protected] file-A.zip

Π—Π΄Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° find Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ -name "file-A", ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ zip, которая Π·Π°Ρ‚Π΅ΠΌ создаСт Π°Ρ€Ρ…ΠΈΠ² file-A.zip с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

zip Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запись Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² стандартный Π²Ρ‹Π²ΠΎΠ΄, Π½ΠΎ эта ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ способны Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ zip. К соТалСнию, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° unzip Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ со стандартного Π²Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ прСпятствуСт совмСстному использованию zip ΠΈ unzip для копирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ сСти, ΠΊΠ°ΠΊ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ tar.

zip, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, способна ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ со стандартного Π²Π²ΠΎΠ΄Π°, поэтому Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сТатия Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

[ [email protected] ~]$ ls -l /etc/ | zip ls-etc.zip -

adding: - (deflated 80%)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls пСрСдаСтся ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ zip. Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ tar, zip ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ дСфис ΠΊΠ°ΠΊ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Β«ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный Π²Π²ΠΎΠ΄ вмСсто Ρ„Π°ΠΉΠ»Π°Β».

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° unzip позволяСт Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² стандартный Π²Ρ‹Π²ΠΎΠ΄, для Ρ‡Π΅Π³ΠΎ слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -p (pipe β€” ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€):

[ [email protected] ~]$ unzip -p ls-etc.zip | less

ΠœΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ лишь самыС основныС возмоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ zip ΠΈ unzip. ОбС ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ мноТСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΏΡ€ΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΈΠΌ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, хотя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… допустимы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Для ΠΎΠ±Π΅ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, zip ΠΈ unzip, ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ страницы справочного руководства (man) с мноТСством ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

Бинхронизация Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²


Π’ Π·Π°Π΄Π°Ρ‡Π°Ρ… Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования систСм ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стратСгия синхронизации ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ, находящимися Π² локальной систСмС (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΠΎΠΌ устройствС) ΠΈΠ»ΠΈ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ. МоТно, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию Π²Π΅Π±-сайта, находящСгося Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с Β«Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉΒ» ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Π²Π΅Π±-сСрвСрС.

rsync β€” синхронизация Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ систСмой


Π’ ΠΌΠΈΡ€Π΅ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСм для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инструмСнт rsync. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° синхронизуСт Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» rsync remote-update (ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ обновлСния rsync), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт rsync быстро ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для синхронизации. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ rsync быстрой ΠΈ экономичной ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ копирования.