Π“Π»ΠΎΠ±Π±ΠΈΠ½Π³ (globbing) β€” это Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Linux (ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах) для поиска Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ вмСсто пСрСчислСния ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π³Π»ΠΎΠ±Π±ΠΈΠ½Π³Π° ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с нСсколькими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ эффСктивнСС.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π³Π»ΠΎΠ±Π±ΠΈΠ½Π³Π°:

  • * β€” Π‘ΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π»ΡŽΠ±Ρ‹ΠΌ количСством символов (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ноль символов). ΠŸΡ€ΠΈΠΌΠ΅Ρ€: file* Π½Π°ΠΉΠ΄Π΅Ρ‚ file1.txt, fileA, ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° β€œfile”.
  • ? β€” Π‘ΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с ΠΎΠ΄Π½ΠΈΠΌ Π»ΡŽΠ±Ρ‹ΠΌ символом. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: file?.txt Π½Π°ΠΉΠ΄Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ file1.txt ΠΈΠ»ΠΈ fileA.txt, Π½ΠΎ Π½Π΅ file10.txt.
  • [abc] β€” Π‘ΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· символов, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: file[abc].txt Π½Π°ΠΉΠ΄Π΅Ρ‚ filea.txt, fileb.txt, ΠΈΠ»ΠΈ filec.txt.
  • [a-z] β€” Π‘ΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π»ΡŽΠ±Ρ‹ΠΌ символом Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: file[a-z].txt Π½Π°ΠΉΠ΄Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ filea.txt, filem.txt ΠΈ Ρ‚.Π΄.
  • [!abc] ΠΈΠ»ΠΈ [^abc] β€” Π‘ΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π»ΡŽΠ±Ρ‹ΠΌ символом, Π½Π΅ входящим Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ список. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: file[!a].txt Π½Π°ΠΉΠ΄Π΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ filea.txt.

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π³Π»ΠΎΠ±Π±ΠΈΠ½Π³Π°:

  • file* β€” НайдСт всС Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с β€œfile”.
  • *.txt β€” НайдСт всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ β€œ.txt”.
  • file[0-9].txt β€” НайдСт Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ file1.txt, file2.txt, Π½ΠΎ Π½Π΅ fileA.txt.
  • file{1,2,3}.txt β€” НайдСт Ρ„Π°ΠΉΠ»Ρ‹ file1.txt, file2.txt, file3.txt.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π³Π»ΠΎΠ±Π±ΠΈΠ½Π³Π°:

  • **/*.txt β€” НайдСт всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ β€œ.txt” Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ всСх Π΅Π΅ поддирСкториях.
  • [a-z]* β€” НайдСт Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с любой строчной Π±ΡƒΠΊΠ²Ρ‹.
  • [[:digit:]]* β€” НайдСт Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ†ΠΈΡ„Ρ€Ρ‹.

ИспользованиС Π³Π»ΠΎΠ±Π±ΠΈΠ½Π³Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…:

  • ls *.txt β€” ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .txt Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.
  • cp file?.txt /backup/ β€” Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ file1.txt ΠΈΠ»ΠΈ fileA.txt Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /backup/.
  • rm file[0-9]* β€” Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с file ΠΈ Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт Ρ†ΠΈΡ„Ρ€Π°.
  • mv data{1,2,3}.csv /data/archive/ β€” ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ data1.csv, data2.csv, data3.csv Π² /data/archive/.
  • tar -cvf archive.tar *.log β€” ΠΡ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС .log Ρ„Π°ΠΉΠ»Ρ‹ Π² archive.tar.

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов
Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ символы Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ мСтасимволы, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (\).

  • ls \*.txt β€” НайдСт Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ *.txt.
  • ls file\? β€” НайдСт Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ file?.

ΠœΠ΅Ρ‚Π° информация

ΠžΠ±Π»Π°ΡΡ‚ΡŒ:: 00 Linux
Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ::
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ::
Π‘ΠΎΠ·Π΄Π°Π½Π°:: 2024-11-14
Автор::

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ