Если бы я попросил вас упомянуть команду для копирования папки в другое место, почти каждый упомянул бы cp.
Теперь, если я скажу вам, что, кроме того, вы должны скопировать все содержимое этой папки, кроме 1 файла, многие подумают, а другие упомянут Rsync, то с параметром –Exclude вы можете исключить файл или папку X и не копировать их. Но ... знаете ли вы, что cp также позволяет это делать? ... О_О … Да друзья, cp есть своя «исключить» хе-хе.
Например, у нас есть папка ISOS Он содержит: Убунту.исо, debian.iso y ArchLinux.iso :
И бывает, что мы хотим скопировать в другую папку (дистрибутивы-deb, который пуст) файл debian.iso y Убунту.исо, то есть все, кроме 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-файлы хе-хе.
JAJAJAJAJAJA Я не размещал ISO-образы Arch и Fedora, потому что в примере пытались скопировать только дистрибутивы Deb… HAHAHAHAHA.
Здесь необходимо отметить пару моментов. Во-первых, это работает, только если в bash включена опция extglob. Если это не так, его активируют с помощью этой команды:
магазин -s extglob
Его можно поместить в .bashrc, чтобы он всегда был активен.
Другой момент в том, что этот трюк не является опцией команды cp, но он работает на уровне bash. Это означает, что его можно использовать с любой командой. Не только с cp. Вы можете пройти тест, написав:
эхо-файлы: isos /! (archlinux.iso | fedora.iso | chakra.iso)
В противном случае это очень полезный трюк. Наряду с параметром -u для cp, который я также считаю полезным время от времени.
Конечно, это регулярное выражение
На самом деле это расширенный паттерн. Регулярное выражение - это нечто другое, но похоже на него. 🙂
Да, ключ -u в cp действительно интересен. Я признаю, что я большой поклонник rsync ... но я не знаю, у меня есть привязанность к бедному cp, хахаха.
Насчет активации шопта я не знал, предполагал, что это сработало автоматически, спасибо за подсказку.
И да, я подозревал, что это больше связано с Bash, чем с cp, но я еще не пробовал создать rm, cat или что-то в этом роде :)
Спасибо за комментарий, правда
Мне приятно внести свой вклад. 🙂
На самом деле, мне всегда было интересно узнать о регулярных выражениях ... вы взволнованы и пишете об этом новичку? 😀
СМЕШНО!! Я у тебя уже есть. 🙂 Каким счастьем я был без комментариев… 🙂
Ну правда в том, что он мне звонит. 🙂 Но мне еще нужно немного подумать. Это сложно объяснить.
хахахахаха ничего, не волнуйся, ты продолжаешь комментировать, что ты все еще учишься ахахахаха, важно поделиться 😀
Очень хороший совет Вы никогда не лягте спать, не узнав что-то новое.
Точно, и лучше всего то, что я многому учусь из комментариев, которые вы оставляете к постам. Я люблю узнавать странные вещи каждый день, ХАХАХА.
Хорошая уловка. Я его не знал 🙂
Удовольствие 😉
Но когда вы помещаете isos, вы имеете в виду поставить debian.iso ubuntu.iso /! (И т. Д.)? нет
Действительно, это оказался очень интересный совет. Не только из-за самой статьи, но и из-за дополнительной ценности комментариев.
Красивое сообщество <º Linux
Ваша помощь мне не нужна, вы должны привести пример, чтобы студенты могли лучше понять вашу великолепную технику.
Спасибо, что нашли время, я всегда буду помнить эту страницу в своем сердце
вы говорите, что пропускаете каталоги, однако в примерах вы пропускаете только файлы, знаете ли вы, как пропустить конкретный каталог? С уважением.