Ụzọ 3 iji ihichapụ faịlụ niile na ndekọ ma e wezụga otu faịlụ ma ọ bụ ole na ole nwere ndọtị


Mgbe ụfọdụ ị na-abanye n'ọnọdụ ebe ịchọrọ ihichapụ faịlụ niile dị na ndekọ ma ọ bụ kpochaa ndekọ site na iwepu faịlụ niile ma e wezụga faịlụ nke ụdị enyere (na-ejedebe na otu ndọtị).

N'isiokwu a, anyị ga-egosi gị otu esi ehichapụ faịlụ na ndekọ ma e wezụga ụfọdụ ndọtị faịlụ ma ọ bụ ụdị na-eji rm, chọta na globignore iwu.

Tupu anyị aga n'ihu, ka anyị bido site n'ileba anya na nkenke otu echiche dị mkpa na Linux - filename pattern matching, nke ga-enyere anyị aka ịnagide nsogbu anyị dị nso.

Na Linux, ụkpụrụ shei bụ eriri nke nwere mkpụrụedemede pụrụ iche na-esote, nke a na-akpọ kalịnda ma ọ bụ metacharacters:

  1. * - dabara efu ma ọ bụ mkpụrụedemede karịa
  2. ? - dabara otu mkpụrụedemede ọ bụla
  3. [seq] - dabara agwa ọ bụla na seq
  4. [!seq] - dabara agwa ọ bụla anọghị na seq

Enwere ụzọ atọ anyị ga-enyocha ebe a, ndị a gụnyere:

Hichapụ faịlụ site na iji ndị na-arụ ọrụ dakọtara ụkpụrụ

Edepụtara ndị na-ahụ maka ụkpụrụ agbatịgoro dị iche iche n'okpuru ebe a, ebe ndepụta-ụkpụrụ bụ ndepụta nwere otu aha faịlụ ma ọ bụ karịa, kewapụrụ site na iji agwa |:

  1. *(ndepụta ụkpụrụ) - dabara efu ma ọ bụ ihe omume karịa nke ụkpụrụ akọwapụtara
  2. ?(ndepụta ụkpụrụ) - dakọtara efu ma ọ bụ otu omume nke ụkpụrụ akọwapụtara
  3. +(ndepụta ụkpụrụ) - dakọtara otu ma ọ bụ karịa n'ụkpụrụ ndị akọwapụtara
  4. @(ndepụta ụkpụrụ) - dabara otu n'ime ụkpụrụ akọwapụtara
  5. !(ndepụta ụkpụrụ) - dabara ihe ọ bụla ma e wezụga otu ụkpụrụ enyere

Iji jiri ha, mee ka nhọrọ extglob shei dị ka ndị a:

# shopt -s extglob

1. Ka ihichapụ faịlụ niile dị na ndekọ ma e wezụga aha faịlụ, pịnye iwu n'okpuru:

$ rm -v !("filename")

2. Ka ihichapụ faịlụ niile ewezuga filename1 na filename2:

$ rm -v !("filename1"|"filename2") 

3. Ihe atụ dị n'okpuru na-egosi otu esi ewepụ faịlụ niile na-abụghị faịlụ .zip niile na mmekọrịta:

$ rm -i !(*.zip)

4. Ọzọ, ị nwere ike ihichapụ faịlụ niile dị na ndekọ na-abụghị faịlụ .zip na .odt faịlụ dị ka ndị a, mgbe ị na-egosipụta ihe a na-eme:

$ rm -v !(*.zip|*.odt)

Ozugbo ị nwetara iwu niile achọrọ, gbanyụọ extglob shei nhọrọ dị ka:

$ shopt -u extglob

Hichapụ faịlụ Iji Linux chọta Iwu

N'okpuru usoro a, anyị nwere ike iji chọta naanị na nhọrọ kwesịrị ekwesị ma ọ bụ na njikọ xargs site na iji pipeline dị ka n'ụdị dị n'okpuru:

$ find /directory/ -type f -not -name 'PATTERN' -delete
$ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm {}
$ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm [options] {}

5. Iwu na-esonụ ga-ehichapụ faịlụ niile na-ewepụ faịlụ .gz na ndekọ aha ugbu a:

$ find . -type f -not -name '*.gz'-delete

6. Iji pipeline na xargs, ị nwere ike gbanwee ikpe dị n'elu dị ka ndị a:

$ find . -type f -not -name '*gz' -print0 | xargs -0  -I {} rm -v {}

7. Ka anyị leba anya n'otu ihe atụ ọzọ, iwu dị n'okpuru ga-ehichapụ faịlụ niile na-ewepu faịlụ .gz, .odt, na .jpg faịlụ. n'ime ndekọ aha ugbu a:

$ find . -type f -not \(-name '*gz' -or -name '*odt' -or -name '*.jpg' \) -delete

Hichapụ faịlụ site na iji Bash GLOBIGNORE mgbanwe

Otú ọ dị, usoro ikpeazụ a na-arụ ọrụ na bash. N'ebe a, mgbanwe GLOBIGNORE na-echekwa ndepụta nkewapụtara n'ụkpụrụ (aha faịlụ) nke a ga-eleghara anya site na mgbasawanye aha.

Iji were usoro a, banye na ndekọ nke ịchọrọ ihicha, wee tọọ GLOBIGNORE mgbanwe dị ka ndị a:

$ cd test
$ GLOBIGNORE=*.odt:*.iso:*.txt

N'ihe atụ a, a ga-ewepụ faịlụ niile na-abụghị .odt, .iso na .txt faịlụ nwere na ndekọ aha ugbu a.

Ugbu a, mee iwu ahụ ka ihichapụ ndekọ ahụ:

$ rm -v *

Emechaa, gbanyụọ GLOBIGNORE mgbanwe:

$ unset GLOBIGNORE

Rịba ama: Iji ghọta ihe ọkọlọtọ ndị e debere n'iwu ndị dị n'elu pụtara, rụtụ aka na ibe nwoke nke iwu ọ bụla anyị jiworo mee ihe n'ihe atụ dị iche iche.

Ọ gwụla! Ọ bụrụ na ị nwere usoro ahịrị iwu ọ bụla n'uche maka otu ebumnuche, echefula ịkọrọ anyị site na ngalaba nzaghachi anyị n'okpuru.