Понекад треба уклоните готово све датотеке из директоријума, али желите да задржите једног или неке од њих. Када их је велик, досадан задатак је један по један. То није најбоља опција, постоје начини који ће вам олакшати рад у Линуку и одједном можете елиминисати све оне који су вам потребни.
На пример, можда ћете желети да уклоните само оне који почињу са одређеним именом или оне који имају одређено проширење итд. Све што је могућеУ ствари, у другим приликама сам већ показао сличне лекције у ЛкА. Овде можете пратити упутства корак по корак и на једноставан начин да бисте могли да избришете све оне датотеке које желите, осим онога што желите да сачувате.
И најбоља ствар је то нећете морати инсталирати ниједан програм, то се лако може учинити наредбама попут рм и финд. Односно, програми који су већ унапред инсталирани на било ком Линук дистрибуцијском систему. И наравно, метода ће се заснивати на проналажењу образаца и употреби тих подударања за уклањање само онога што желите.
Па, да би се тамо елиминисало неколико алтернатива, Шта су они…
Уклоните датотеке из директоријума помоћу рм
Па, да би користили рм команда Да бисте елиминисали оно што осећате, морате знати пре неколико начина за идентификовање образаца:
- * (листа образаца) - подудара се са нула или више појављивања наведених образаца
- ? (листа образаца) - подудара се са нула или једном појавом наведених образаца
- + (листа образаца) - подудара се са једном или више појава наведених образаца
- @ (листа образаца) - одговара једном од наведених образаца
- ! (листа образаца) - подудара се са било чим, осим са једним од задатих образаца
у омогућити ектглоб Да бисте их користили, прво морате извршити следећу команду:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Сада помоћу рм можете уклонити све што желите. На пример, избришите све датотеке из директоријума, осим оних које одговарају имену «Лка»:
rm -v !("lxa")
Такође можете одредити два или више имена која не желите да избришете. На пример, да бисте избегли уклањање „лка“ и „десделинук“:
rm -v !("lxa"|"desdelinux")
Можете избрисати све датотеке, минус они са продужетком .мп3. На пример:
rm -v !(*.mp3)
На крају се можете вратити на онемогућити ектглоб:
shopt -u extglob
Уклоните датотеке из директоријума помоћу пронађи
Друга алтернатива рм-у је користите финд да бисте уклонили све што вам се свиђа. Можете користити цев и каргс са рм-ом, или да бисте пронашли опцију -делете. Односно, генеричка синтакса би била:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
На пример, замислите да желите избришите све датотеке у директоријуму, осим оних са наставком .јпг, могли бисте да користите једну од ове две команде, јер обе добијају исти резултат:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Уместо тога, ако сте желели додајте неки додатни образац, могао би и ти. На пример, претпоставимо да не желите да уклоните .пдф или .одт из директоријума:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Наравно, исто бисте могли да урадите и са | и каргс као у претходном примеру. Иначе, користили смо -не да порекнем, али то можете уклонити да бисте учинили позитивним, то јест уклонили обрасце подударања и не искључили их.
Избришите датотеке из директоријума помоћу променљиве ГЛОБИГНОРЕ
Коначно, постоји Друга алтернатива за проналажење и рм, а користи променљиву окружења да укаже на датотеке које желите уклонити или изузети. На пример, замислите да желите да избришете све датотеке у директоријуму званом Преузимања, сачувајући датотеке .пдф, .мп3 и .мп4. У том случају можете учинити следеће:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE