Android

Paano makahanap ng mga file sa linux gamit ang command line

Linux Command Line (10) Copy Files and Directories

Linux Command Line (10) Copy Files and Directories

Talaan ng mga Nilalaman:

Anonim

Ang find utos ay isa sa mga pinakamalakas na tool sa arsenal ng system ng Linux. Naghanap ito ng mga file at direktoryo sa isang hierarchy ng direktoryo batay sa isang binigay na expression ng gumagamit at maaaring magsagawa ng aksyon na tinukoy ng gumagamit sa bawat file na naitugma.

Maaari mong gamitin ang utos ng find upang maghanap para sa mga file at direktoryo batay sa kanilang mga pahintulot, uri, petsa, pagmamay-ari, laki, at marami pa. Maaari rin itong magamit sa pagsasama sa iba pang mga tool tulad ng grep o sed .

Nahanap ng Linux ang Command Syntax

Ang pangkalahatang syntax para sa utos ng find ay ang mga sumusunod:

find

  • Kinokontrol ng mga options katangian ang paggamot ng mga makahulugang link, mga pagpipilian sa pag-debug, at paraan ng pag-optimize.Ang path… tinukoy ng katangian ang panimulang direktoryo o direktoryo kung saan hahanapin ang paghahanap ng mga file.Ang expression katangian ay binubuo ng mga pagpipilian, pattern ng paghahanap, at mga pagkilos na pinaghiwalay ng mga operator.

Upang maghanap para sa mga file sa isang direktoryo, hinihiling ng gumagamit ang find utos na kailangang basahin ang mga pahintulot sa direktoryo na iyon.

Tingnan natin ang sumusunod na halimbawa:

find -L /var/www -name "*.js"

  • Ang pagpipilian -L (mga pagpipilian) ay nagsasabi sa find utos na sundin ang mga makasagisag na link.Ang /var/www (landas…) ay tumutukoy sa direktoryo na hahanapin.Ang (expression) -name "*.js nagsasabi na find paghahanap ng mga file na nagtatapos sa .js (JavaScript file).

Maghanap ng Mga File sa Pangalan

Ang paghahanap ng mga file ayon sa pangalan ay marahil ang pinaka-karaniwang paggamit ng utos ng find . Upang makahanap ng isang file sa pamamagitan ng paggamit ng pangalan nito, sinunod ang pagpipilian ng -name pangalan ng file na iyong hinahanap.

Halimbawa, upang maghanap para sa isang file na nagngangalang document.pdf sa direktoryo ng /home/linuxize gagamitin mo ang sumusunod na utos:

find /home/linuxize -type f -name document.pdf

Upang magpatakbo ng isang case-insensitive na paghahanap, baguhin ang pagpipilian ng -name may -iname :

find /home/linuxize -type f -iname document.pdf

Ang utos sa itaas ay tutugma sa "Document.pdf", "DOKUMENT.pdf"..etc.

Maghanap ng mga File sa pamamagitan ng Extension

Ang paghahanap para sa mga file sa pamamagitan ng extension ay pareho sa paghahanap ng mga file ayon sa pangalan. Halimbawa, upang mahanap ang lahat ng mga file na nagtatapos sa .log.gz loob ng /var/log/nginx direktoryo na maaari mong gamitin:

find /var/log/nginx -type f -name '*.log.gz'

Mahalagang banggitin na kapag ginamit mo ang character ng wildcard, dapat mong i-quote ang pattern o makatakas sa simbolo ng asterisk * may backslash upang hindi ito ma-interpret ng shell.

Upang mahanap ang lahat ng mga file na hindi tumutugma sa regex *.log.gz maaari mong gamitin ang -not pagpipilian. Halimbawa, upang mahanap ang lahat ng mga file na hindi nagtatapos sa *.log.gz gagamitin mo:

find /var/log/nginx -type f -not -name '*.log.gz'

Maghanap ng Mga File ayon sa Uri

Minsan maaaring kailanganin mong maghanap para sa mga tiyak na uri ng file tulad ng mga normal na file, direktoryo o symlinks. Sa Linux, ang lahat ay isang file.

Upang maghanap para sa mga file batay sa kanilang uri, gamitin ang pagpipilian na -type at isa sa mga sumusunod na deskriptor upang tukuyin ang uri ng file:

  • f : isang regular na file d : direktoryo l : simbolikong link c : mga aparato ng character b : mga aparato ng bloke p : pinangalanang pipe (FIFO) s : socket

Halimbawa, upang mahanap ang lahat ng mga direktoryo sa kasalukuyang direktoryo ng nagtatrabaho, gagamitin mo:

find. -type d

Ang karaniwang halimbawa ay ang pagbabagong pagbago ng mga pahintulot ng file ng website sa 644 at mga pahintulot sa direktoryo sa 755 gamit ang chmod utos:

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

Maghanap ng Mga File ayon sa Laki

Upang makahanap ng mga file batay sa laki ng file, ipasa ang parameter na -size kasama ang laki ng pamantayan. Maaari mong gamitin ang mga sumusunod na suffix upang tukuyin ang laki ng file:

  • b : 512-byte blocks (default) c : byte w : two-byte words k : Kilobytes M : Megabytes G : Gigabytes

Ang sumusunod na utos ay makahanap ng lahat ng mga file ng eksaktong 1024 byte sa loob ng direktoryo ng /tmp :

find /tmp -type f -size 1024c

Pinapayagan ka ng find command na maghanap ka ng mga file na mas malaki o mas mababa sa isang tinukoy na sukat.

Sa sumusunod na halimbawa, hinahanap namin ang lahat ng mga file na mas mababa sa 1MB loob ng kasalukuyang direktoryo ng nagtatrabaho. Pansinin ang minus - simbolo bago ang halaga ng laki:

find. -type f -size -1M

find. -type f -size +1M

Maaari ka ring maghanap para sa mga file sa loob ng isang saklaw ng laki. Ang sumusunod na utos ay mahahanap ang lahat ng mga file sa pagitan ng 1 at 2MB :

find. -type f -size +1M -size 21M

Maghanap ng Mga File ayon sa Petsa ng Pagbabago

Ang find utos ay maaari ring maghanap para sa mga file batay sa kanilang huling pagbabago, pag-access, o oras ng pagbabago.

Kapareho kapag naghahanap sa pamamagitan ng laki, gamitin ang plus at minus na mga simbolo para sa "mas malaki kaysa" o "mas mababa sa".

Sabihin natin na ilang araw na ang nakakaraan, binago mo ang isa sa mga file ng pagsasaayos ng dovecot, ngunit nakalimutan mo kung alin ang isa. Madali mong mai-filter ang lahat ng mga file sa ilalim ng direktoryo /etc/dovecot/conf.d na nagtatapos sa .conf at nabago sa huling limang araw kasama ang:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Narito ang isa pang halimbawa ng pag-filter ng mga file batay sa petsa ng pagbabago gamit ang pagpipilian na -daystart . Ililista ng utos sa ibaba ang lahat ng mga file sa direktoryo ng /home na binago 30 o higit pang mga araw na nakalipas:

find /home -mtime +30 -daystart

Maghanap ng Mga File sa pamamagitan ng Mga Pahintulot

Ang opsyon na -perm nagbibigay-daan sa iyo upang maghanap para sa mga file batay sa mga pahintulot ng file.

Halimbawa, upang mahanap ang lahat ng mga file na may mga pahintulot ng eksaktong 775 loob ng /var/www/html direktoryo, gagamitin mo:

find /var/www/html -perm 644

Maaari mong lagyan ng prefix ang numeric mode na may minus - o slash / .

Kapag ang slash / ay ginagamit bilang prefix, pagkatapos ng hindi bababa sa isang kategorya (gumagamit, grupo o iba pa) ay dapat magkaroon ng hindi bababa sa kani-kanilang mga piraso na itinakda para sa isang file na tumutugma.

Isaalang-alang ang sumusunod na halimbawa ng utos:

find. -perm /444

Ang utos sa itaas ay tutugma sa lahat ng mga file na may mga pahintulot na basahin para sa alinman sa gumagamit, grupo o iba pa.

Kung minus - ay ginamit bilang prefix pagkatapos para sa file na tumugma sa hindi bababa sa tinukoy na mga piraso ay dapat itakda. Ang sumusunod na utos ay maghanap para sa mga file na nabasa at sumulat ng pahintulot para sa may-ari at pangkat at mabasa ng ibang mga gumagamit:

find. -perm -664

Maghanap ng mga File sa pamamagitan ng May-ari

Upang makahanap ng mga file na pag-aari ng isang partikular na gumagamit o grupo, gamitin ang mga pagpipilian sa -user at -group .

Halimbawa, upang maghanap para sa lahat ng mga file at direktoryo na pag-aari ng gumagamit linuxize , tatakbo ka:

find / -user linuxize

Narito ang isang tunay na halimbawa sa mundo. Sabihin nating nais mong mahanap ang lahat ng mga file na pag-aari ng gumagamit ng www-data at baguhin ang pagmamay-ari ng mga naitugmang mga file mula sa www-data hanggang nginx :

find / -user www-data -type f -exec chown nginx {} ;

Hanapin at Tanggalin ang mga File

Upang tanggalin ang lahat ng mga file na tumutugma, idagdag ang pagpipilian na -delete sa dulo ng expression ng tugma.

Tiyaking gumagamit ka lamang ng pagpipiliang ito kapag tiwala ka na ang resulta ay tumutugma sa mga file na nais mong tanggalin. Ito ay palaging isang magandang ideya upang i-print ang mga naitugmang mga file bago gamitin ang pagpipilian na -delete .

Halimbawa, upang tanggalin ang lahat ng mga file na nagtatapos sa .temp mula sa /var/log/ gagamitin mo:

find /var/log/ -name `*.temp` -delete Gamitin ang pagpipilian na -delete may matinding pag-iingat. Sinusuri ang linya ng paghahanap ng utos bilang isang expression at kung idagdag mo muna ang pagpipilian na -delete , tatanggalin ng utos ang lahat sa ibaba ng mga panimulang punto na iyong tinukoy.

Pagdating sa mga direktoryo, find maaaring tanggalin ang mga walang laman na direktoryo katulad ng rmdir .

Konklusyon

Ipinakita namin sa iyo kung paano gamitin ang find command na may iba't ibang mga pagpipilian at pamantayan.

Ang artikulong ito ay dapat magbigay sa iyo ng isang pangunahing pag-unawa sa kung paano maghanap ng mga file sa iyong mga system ng Linux. Maaari mo ring bisitahin ang pahina ng find tao at basahin ang tungkol sa lahat ng iba pang mga makapangyarihang mga pagpipilian ng utos na find .

makahanap ng terminal