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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 22

Автор НСйл ΠœΡΡ‚ΡŒΡŽ

НаписаниС foo= ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ unset Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ foo= Π·Π°Π΄Π°Π΅Ρ‚ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ foo Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null, Π½ΠΎ ΠΏΡ€ΠΈ этом пСрСмСнная foo всС Π΅Ρ‰Π΅ сущСствуСт. Команда unset foo удаляСт ΠΈΠ· окруТСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ foo.

Π•Ρ‰Π΅ Π΄Π²Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ рСгулярныС выраТСния

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ программирования Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΅Ρ‰Π΅ Π΄Π²Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, хотя ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΎΡ‡Π΅Π½ΡŒ пригодятся ΠΏΡ€ΠΈ написании Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΠΎΠΏΡƒΡ‚Π½ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ познакомимся с рСгулярными выраТСниями, срСдством поиска ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ сСбя Π² Ρ€Π°Π·Π½Ρ‹Ρ… частях ОБ Linux ΠΈ тСсно связанных с нСю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

Команда find

ΠŸΠ΅Ρ€Π²ΠΎΠΉ рассмотрим ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ find. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰Π°ΡΡΡ для поиска Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°, Π½ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ Π² ОБ Linux часто находят Π΅Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТной Π² использовании Π² Π½Π΅ΠΌΠ°Π»ΠΎΠΉ стСпСни ΠΈΠ·-Π·Π° Π΅Π΅ ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… дСйствия (action-type), ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· этих Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, рассмотрим ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ поиска Π½Π° вашСй машинС Ρ„Π°ΠΉΠ»Π° test. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π΄Π°Π»Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ достаточно ΠΏΡ€Π°Π² доступа для обслСдования всСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

# find / -name test -print

/usr/bin/test

#

Π’ зависимости ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° установки систСмы Π½Π° вашСй машинС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ test. Как Π²Ρ‹, вСроятно, Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π²ΡƒΡ‡ΠΈΡ‚ Ρ‚Π°ΠΊ: "ΠΈΡΠΊΠ°Ρ‚ΡŒ, начиная с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /, Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ test ΠΈ Π·Π°Ρ‚Π΅ΠΌ вывСсти Π½Π° экран имя Ρ„Π°ΠΉΠ»Π°". Π›Π΅Π³ΠΊΠΎ, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ? БСзусловно.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π° нашСй машинС ΠΈ Π½Π° сСтСвом дискС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с ОБ Windows. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с Linux смонтирована (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° SAMBA) порция Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с ОБ Windows. ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ поиск Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅ΡΡ‚ΠΈΡΡŒ, Π΄Π°ΠΆΠ΅ Ссли ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ искомый Ρ„Π°ΠΉΠ» находится Π½Π° машинС ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ОБ Linux.

Π’ этом случаС Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ пСрвая опция. Если Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -mount, Ρ‚ΠΎ смоТСтС ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ find ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ смонтированныС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

# find / -mount -name test -print

/usr/bin/test

#

ΠœΡ‹ нашли всС Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π½Π° нашСй машинС, Π½ΠΎ Π½Π° сСй Ρ€Π°Π· Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΠΈ Π±Π΅Π· поиска Π² смонтированных Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах.

Полная синтаксичСская запись ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ find выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

find [ΠΏΡƒΡ‚ΡŒ] [ΠΎΠΏΡ†ΠΈΠΈ] [ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ] [дСйствия]

Π§Π°ΡΡ‚ΡŒ записи [ΠΏΡƒΡ‚ΡŒ] понятна ΠΈ проста: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ поиска, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /bin, ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ .. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ нСсколько ΠΏΡƒΡ‚Π΅ΠΉ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, find /var /home.

Π’ Ρ‚Π°Π±Π». 2.10 пСрСчислСны основныС ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.


Π’Π°Π±Π»ΠΈΡ†Π° 2.10

ΠžΠΏΡ†ΠΈΡ ОписаниС -depth Поиск Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΏΠ΅Ρ€Π΅Π΄ поиском Π² самом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ -follow Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ символичСским ссылкам -maxdepths N ΠŸΡ€ΠΈ поискС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ N Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° -mount (ΠΈΠ»ΠΈ -xdev) НС ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎ критСриях. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ find ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ большоС число ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π², ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΈΠ±ΠΎ true, Π»ΠΈΠ±ΠΎ false. Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π° find рассматриваСт ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ примСняСт ΠΊ Π½Π΅ΠΌΡƒ всС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π² порядкС ΠΈΡ… опрСдСлСния. Если ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, ΠΊΠΎΠΌΠ°Π½Π΄Π° find ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ; Ссли ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, ΠΊΠΎΠΌΠ°Π½Π΄Π° примСняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ»ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ дСйствиС Π½Π°Π΄ Π½ΠΈΠΌ. Π’ Ρ‚Π°Π±Π». 2.11 пСрСчислСны самыС распространСнныС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ; ΠΏΠΎΠ»Π½Ρ‹ΠΉ список тСстов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ find, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° страницах ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ справочного руководства.


Π’Π°Π±Π»ΠΈΡ†Π° 2.11

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ОписаниС -atime N К Ρ„Π°ΠΉΠ»Ρƒ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ послСдний Ρ€Π°Π· N Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ -mtime N Π€Π°ΠΉΠ» послСдний Ρ€Π°Π· измСнялся N Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ -name шаблон Имя Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· указания ΠΏΡƒΡ‚ΠΈ соотвСтствуСт Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ шаблон Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ find ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ, Π΅Π³ΠΎ слСдуСт всСгда Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ -newer Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ» Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ», ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ» -type Π‘ Π€Π°ΠΉΠ» Ρ‚ΠΈΠΏΠ° C, Π³Π΄Π΅ C ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ значСния; Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ "d" для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ "f" для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ обозначСния Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° страницах ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ справочного руководства -user имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π€Π°ΠΉΠ» ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π». 2.12, Ρƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΈΠ· Π½ΠΈΡ… Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ записи: короткая ΠΈ Π±ΠΎΠ»Π΅Π΅ длинная Ρ„ΠΎΡ€ΠΌΠ°.


Π’Π°Π±Π»ΠΈΡ†Π° 2.12

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, короткая Ρ„ΠΎΡ€ΠΌΠ° ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, длинная Ρ„ΠΎΡ€ΠΌΠ° ОписаниС ! -not Π˜Π½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ критСрия -Π° -and Оба критСрия Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ истинны -ΠΎ -or Один ΠΈΠ· ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ истинным

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² ΠΈ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скобок. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ особоС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, скобки Ρ‚Π°ΠΊΠΆΠ΅ слСдуСт Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слэша. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ примСняСтС шаблон для ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π΅ выполняла подстановку ΠΈΠΌΠ΅Π½ΠΈ, Π° прямо ΠΏΠ΅Ρ€Π΅Π΄Π°Π»Π° шаблон ΠΊΠΎΠΌΠ°Π½Π΄Π΅ find. НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ "ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ Ρ„Π°ΠΉΠ» X, ΠΈΠ»ΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΡΡ со Π·Π½Π°ΠΊΠ° подчСркивания", Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

\(-newer X -ΠΎ -name "_*" \)

ΠœΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сразу послС описания "Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚". А сСйчас Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.16.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.16 ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ find с критСриями

ΠŸΠΎΠΏΡ‹Ρ‚Π°Π΅ΠΌΡΡ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ послС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° while2.

$ find . -newer while2 -print

.

./elif3

./words.txt

./words2.txt

./_trap

$

ВсС чудСсно, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ нашли Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Вас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, поэтому Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ -type f.

$ find . -newer while2 -type f -print

./elif3

./words.txt

./words2.txt

./_trap

$

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚? Π’Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° find Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (.) Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ Ρ„Π°ΠΉΠ» while2 (-newer while2), ΠΈ, Ссли этот ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ критСрия (-type f), ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π»ΠΈ это Ρ„Π°ΠΉΠ»Ρ‹. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ дСйствиС, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ, -print, просто для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΉΠ΄Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ с символа подчСркивания ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ Ρ„Π°ΠΉΠ» while2, Π½ΠΎ Π² любом случаС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скобок.

$ find . \( -name "_*" -or -newer while2 \) -type f -print

./elif3

./words.txt

./words2.txt

./_break

./_if

./set

./_shift

./_trap

./_unset

./ until

$

Π­Ρ‚ΠΎ Π½Π΅ слишком Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скобки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ, ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ символ *, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ нСпосрСдствСнно Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ find.