Команда cp: ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² *nix

Команда cp: ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² *nix

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

Допустим Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всё ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ /source Π² ΠΏΠ°ΠΏΠΊΡƒ /target.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡƒΠΌ это:

cp /source/* /target

Π‘Ρ€Π°Π·Ρƒ исправим эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π°:

cp -a /source/* /target

ΠšΠ»ΡŽΡ‡ -a Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΏΡ€Π°Π² ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ. Когда Π½Π΅ трСбуСтся Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ воспроизвСдСниС ΠΏΡ€Π°Π² достаточно ΠΊΠ»ΡŽΡ‡Π° -r.

ПослС копирования ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π΅ всС Ρ„Π°ΠΉΠ»Ρ‹ β€” Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚ΠΈΠΏΠ°:

.profile
.local
.mc

ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ?

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ wildcards ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ shell (bash Π² Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΌ случаС). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ bash ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ‚ΠΎΡ‡Π΅ΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΊΠ°ΠΊ скрытыС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ повСдСния Π½Π°ΠΌ придётся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ bash с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

shopt -s dotglob

Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ повСдСния ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» wildcard.sh c этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² ΠΏΠ°ΠΏΠΊΠ΅ /etc/profile.d (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² вашСм дистрибутивС иная ΠΏΠ°ΠΏΠΊΠ°).

А Ссли Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ-источникС Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚ΠΎ shell Π½Π΅ смоТСт Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вмСсто Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΈ, ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой. ΠŸΡ€ΠΎΡ‚ΠΈΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ failglob ΠΈ nullglob. Нам потрСбуСтся Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ failglob, которая Π½Π΅ даст ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ. nullglob Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° строку с wildcards Π½Π΅ нашСдшими совпадСния ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² ΠΏΡƒΡΡ‚ΡƒΡŽ строку (Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹), Ρ‡Ρ‚ΠΎ для cp Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Однако, Ссли Π² ΠΏΠ°ΠΏΠΊΠ΅ тысячи Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ большС, Ρ‚ΠΎ ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° с использованиСм wildcards стоит ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вовсС. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ bash Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ wildcards Π² ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅:

cp -a /souce/a /source/b /source/c …… /target

На Π΄Π»ΠΈΠ½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

getconf ARG_MAX

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² Π±Π°ΠΉΡ‚Π°Ρ…:

2097152

Или:

xargs --show-limits

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ°:

….
Maximum length of command we could actually use: 2089314
….

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ вовсС Π±Π΅Π· wildcards.

Π”Π°Π²Π°ΠΉΡ‚Π΅ просто напишСм

cp -a /source /target

И Ρ‚ΡƒΡ‚ ΠΌΡ‹ столкнёмся с Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ повСдСния cp. Если ΠΏΠ°ΠΏΠΊΠΈ /target Π½Π΅ сущСствуСт, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Однако, Ссли ΠΏΠ°ΠΏΠΊΠ° target сущСствуСт, Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ скопированы Π² ΠΏΠ°ΠΏΠΊΡƒ /target/source.

НС всСгда ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠ°ΠΏΠΊΡƒ /target, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ наша Ρ†Π΅Π»ΡŒ, допустим, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² /target Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ· /source.

Если Π±Ρ‹ ΠΏΠ°ΠΏΠΊΠΈ источника ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠ° Π½Π°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π±Ρ‹ ΠΈΠ· /source Π² /home/source, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

cp -a /source /home

И послС копирования Ρ„Π°ΠΉΠ»Ρ‹ Π² /home/source оказались Π±Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ· /source.

Вакая Π²ΠΎΡ‚ логичСская Π·Π°Π΄Π°Ρ‡ΠΊΠ°: ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ-ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠ΅, Ссли ΠΏΠ°ΠΏΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½ΠΎ Ссли ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, Ρ‚ΠΎ ΠΏΠ°ΠΏΠΊΠ°-исходник Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠ°. Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· /source Π² /target с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cp Π±Π΅Π· wildcards?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это Π²Ρ€Π΅Π΄Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

cp -a /source/. /target

Π’Π΅ ΠΊΡ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌ с DOS ΠΈ Linux ΡƒΠΆΠ΅ всё поняли: Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ Π΅ΡΡ‚ΡŒ 2 Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ «.» ΠΈ «..», ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ псСвдопапками-ссылками Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈ Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

  • ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ cp провСряСт сущСствованиС ΠΈ пытаСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ /target/.
  • Вакая дирСктория сущСствуСт ΠΈ это Π΅ΡΡ‚ΡŒ /target
  • Π€Π°ΠΉΠ»Ρ‹ ΠΈΠ· /source скопированы Π² /target ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π˜Ρ‚Π°ΠΊ, вСшаСм Π² ΠΆΠΈΡ€Π½ΡƒΡŽ Ρ€Π°ΠΌΠΎΡ‡ΠΊΡƒ Π² своСй памяти ΠΈΠ»ΠΈ Π½Π° стСнС:

cp -a /source/. /target

ПовСдСниС этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ. Всё ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· ошибок Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Ρƒ вас Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΡ… Π½Π΅Ρ‚ вовсС.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ wildcards, вмСсто Π½ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ cp Π² сочСтании с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠ°ΠΏΠΊΠΈ-источника. Π­Ρ‚ΠΎ скопируСт всС Ρ„Π°ΠΉΠ»Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ скрытыС ΠΈ Π½Π΅ завалится ΠΏΡ€ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ отсутствии Ρ„Π°ΠΉΠ»ΠΎΠ².

ПослСсловиС

vmspike ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

cp -a -T /source /target

Oz_Alex

cp -aT /source /target

Π’ΠΠ˜ΠœΠΠΠ˜Π•: рСгистр Π±ΡƒΠΊΠ²Ρ‹ T ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ Π±Π΅Π»ΠΈΠ±Π΅Ρ€Π΄Ρƒ: Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ копирования помСняСтся.
Благодарности:

  • Компании RUVDS.COM Π·Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² своСм Π±Π»ΠΎΠ³Π΅ Π½Π° Π₯Π°Π±Ρ€Π΅.
  • Π—Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ TripletConcept. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ большая ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅.

P.S. Π—Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ошибки направляйтС Π² Π»ΠΈΡ‡ΠΊΡƒ. ΠŸΠΎΠ²Ρ‹ΡˆΠ°ΡŽ Π·Π° это ΠΊΠ°Ρ€ΠΌΡƒ.

Команда cp: ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² *nix

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ