🎩 Bash: Как ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрытыС Ρ„Π°ΠΉΠ»Ρ‹.

Иногда ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрытыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ GNU/Linux скрытыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ .(Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ) Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с Π²Π΅Π±-сайтом, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ часто содСрТат мноТСство скрытых Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ скрытого Ρ„Π°ΠΉΠ»Π° всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Однако слоТности Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² с использованиСм шаблона * (Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ°). Π­Ρ‚ΠΎΡ‚ шаблон Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ символ . (Ρ‚ΠΎΡ‡ΠΊΠ°), Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ всС скрытыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ· процСсса копирования.

Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠΉ рСкурсии. РСкурсия ΠΌΠΎΠ³Π»Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Ссли Π±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрытыС ссылки Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ./ (Ρ‚ΠΎΡ‡ΠΊΠ°) ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ../ (Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ).

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ способы ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. МоТно ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±Π΅Π· использования *.

НапримСр, создадим ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ app с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ .htaccess ΠΈ index.php:

$ mkdir /tmp/app
$ touch /tmp/app/{.htaccess,index.php}
$ ls /tmp/app -la

ΠžΡ‚Π²Π΅Ρ‚:

И ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ backup, ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹:

$ mkdir /tmp/backup
$ ls /tmp/backup -la

ΠžΡ‚Π²Π΅Ρ‚:

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ссылку Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈ Ρ‚ΠΎΠ³Π΄Π° cp скопируСт всё содСрТимоС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ скрытыС Ρ„Π°ΠΉΠ»Ρ‹, Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³:

$ cp -r /tmp/app/. /tmp/backup
$ ls /tmp/backup -la

ΠžΡ‚Π²Π΅Ρ‚:

Π£Π΄Π°Π»ΠΈΠΌ Ρ„Π°ΠΉΠ»Ρ‹ .htaccess ΠΈ index.php ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /tmp/backup:

$ rm /tmp/backup/{.*,*}
$ ls /tmp/backup -la

ΠžΡ‚Π²Π΅Ρ‚:

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΡ†ΠΈΡŽ -T:

$ cp -rT /tmp/app/ /tmp/backup
$ ls /tmp/backup -la

ΠžΡ‚Π²Π΅Ρ‚:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠΏΡ†ΠΈΠΈ -r для рСкурсивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π° Π½Π΅ Π½Π° список Ρ„Π°ΠΉΠ»ΠΎΠ².

Π£Π΄Π°Π»ΠΈΠΌ Ρ„Π°ΠΉΠ»Ρ‹ .htaccess ΠΈ index.php ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /tmp/backup:

$ rm /tmp/backup/{.*,*}
$ ls /tmp/backup -la

Если Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скрытыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис с символами подстановки:

$ cp /tmp/app/.* /tmp/backup
$ ls /tmp/backup -la

ΠžΡ‚Π²Π΅Ρ‚:

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ добавлСния ΠΎΠΏΡ†ΠΈΠΈ -r ΠΊ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Если Π΅Ρ‘ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, ΠΊΠΎΠΌΠ°Π½Π΄Π° попытаСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π½ΠΎ ΠΈ всС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ систСмы, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ послСдствиям.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρ‹ источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

  1. https://losst.pro «Как ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрытыС Ρ„Π°ΠΉΠ»Ρ‹ Π² LinuxΒ».