Ако ви помоля да споменете команда за копиране на папка на друго място, почти всеки би споменал cp.
Сега, ако ви кажа, че освен това трябва да копирате цялото съдържание на тази папка с изключение на 1 файл, мнозина ще останат да мислят, а други ще споменат Rsync, след това с параметъра –Изключете Можете да изключите X файл или папка и да не ги копирате. Но ... знаете ли, че cp също ви позволява да направите това? ... O_O ... Да приятели, cp има свой собствен "изключи" хехе.
Например имаме папката независимите оператори Тя е, която съдържа: ubuntu.iso, debian.iso y archlinux.iso :
И се случва да искаме да копираме в другата папка (distros-deb, което е празно) файла debian.iso y ubuntu.iso, тоест всички с изключение на archlinux.iso
За това можем да копираме файл и след това друг, ръчно, но е много по-интелигентно да използваме опциите, които системата ни предлага, нали? ... 😀 ... например, за да направите това просто:
cp isos/!(archlinux.iso) distros-deb/
И това е достатъчно, за да копирате ВСИЧКО, съдържащо се в директорията isos, в distros-deb, всичко освен archlinux.iso 😉
Но да предположим, че имаме не само тези 3 файла, но също така имаме fedora.iso и chakra.iso ... и искаме да направим същото, то също ще бъде изключено от копието fedora.iso и chakra.iso, нека видим как да го направим:
cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/
Както можете да видите, няколко файла или папки могат да бъдат изключени, ние ги разделяме само с тръба (|) и въпросът е разрешен 😀
С това нямам предвид, че cp е по-добър за всичко от rsync ... но и двата са отлични инструменти, например ... знаете ли параметъра -u de cp? ... хе-хе, със сигурност не 😉
Е, нищо повече за добавяне ... интересен съвет ли е? 😀
поздрави
Не знаех този метод, винаги се научава нещо ново.
Отличен съвет, благодаря.
Благодаря ви
Съветът е много добър, не го знаех! Остава само да се обясни на потребителите на Arch и Fedora защо сте изключили техния iso hehe
JAJAJAJAJAJAJA Не сложих Arch и Fedora ISO, защото примерът се опита да копира само Deb дистрибуции ... HAHAHAHAHA.
Тук трябва да отбележим няколко точки. Единият е, че това работи само ако опцията extglob на bash е активирана. Ако не е, тя се активира с тази команда:
shopt -s extglob
Може да се постави в .bashrc, за да бъде винаги активиран.
Другата точка е, че този трик не е опция на командата cp, но работи на ниво bash. Което означава, че може да се използва с всяка команда. Не само с cp. Можете да направите теста, като напишете:
echo Files: isos /! (archlinux.iso | fedora.iso | chakra.iso)
В противен случай това е много полезен трик. Заедно с опцията -u за cp, която също намирам за полезна от време на време.
Разбира се, това е регулярен израз
Това всъщност е разширен модел. Регулярният израз е нещо друго, но изглежда така. 🙂
Да, -u в cp е наистина интересно. Признавам, че съм голям фен на rsync ... но не знам, имам привързаност към беден cp хахаха.
За активирането на shopt не знаех, предполагах, че това работи автоматично, благодаря за върха.
И да, подозирах, че има повече общо с Баш, отколкото с cp, но още не се бях опитвал да правя rm или котка или нещо подобно :)
Благодаря за коментара, наистина го правя 😀
За мен е удоволствие да направя своето. 🙂
Всъщност, винаги ми е било интересно да науча за регулярни изрази ... вълнуваш ли се и правиш ли новачка за това? 😀
LOL !! Вече ме имаш. 🙂 С колко щастлива бях, без да коментирам ... 🙂
Е, истината е, че той ми се обажда. 🙂 Но все пак трябва да помисля малко за това. Изглежда трудно да се обясни.
хахахахаха нищо, не се притеснявайте, продължавате да коментирате, че все още научавате ахахахаха, важното е да споделите 😀
Много добър съвет Никога няма да си легнете, без да научите нещо ново.
Точно и най-доброто от всичко е, че научавам много с коментарите, които оставяте на публикациите, обичам да уча странни неща всеки ден HAHAHA.
Добър трик. Не го познавах 🙂
Удоволствие 😉
Но когато поставите isos, имате предвид да поставите debian.iso ubuntu.iso /! (Etc и т.н.)? не
Всъщност се оказа много интересен съвет. Не само заради самата статия, но и заради добавената стойност на коментарите.
Красива общност от <º Linux
Вашата помощ не ми е била от полза, трябва да дадете пример, така че учениците да могат по-добре да разберат вашата великолепна техника.
Благодаря ви, че отделихте време, винаги ще помня тази страница в сърцето си
казвате, че пропускате директории, но в примерите пропускате само файлове, знаете ли как да пропуснете определена директория? За разбирането.