Как исключить несколько каталогов с помощью rsync?

Операция «закрыть» на высоком уровне с использованием wmctrl

Приведенная ниже команда также закрывает текущее активное окно, используя спецификацию EWMH, хотя для этого требуется установка другой программы, которую вы, похоже, предпочитаете избегать.

Особенности

Это высокоуровневая операция «закрыть». Другими словами, он отправляет в приложение то же самое сообщение с просьбой закрыть окно, которое будет отправляться через клик мыши на гаджет «закрыть» или ключевой ярлык. Он не эмулирует ключевой ярлык, поэтому работает независимо от ваших ключевых ярлыков или даже если у вас нет ярлыка, настроенного (или, возможно, даже не настроенного на клавиатуре).

В результате ожидаемое поведение:

Это операция закрытия на высоком уровне. Другими словами, он отправляет в приложение то же самое сообщение с просьбой закрыть окно, которое будет отправлено через клик мыши на «закрытом» гаджете или ключевом ярлыке. Кроме того, он дает возможность приложению реагировать к закрытому событию, например, просить подтверждение (подтверждено Thunderbird с окном, в котором написана почта, и Firefox запрашивает подтверждение перед закрытием окна с несколькими открытыми вкладками) или, возможно, даже игнорирует событие.

Команда

wmctrl -c :ACTIVE:

Ссылка

На домашней странице проекта wmctrl - инструмент командной строки для взаимодействия с X Window Manager, совместимым с EWMH / NetWM. [ ! d13] -c Закройте окно грациозно.

и

-c Прекрасно закрыть окно.

1
задан 16 July 2013 в 04:53

2 ответа

При наличии нескольких каталогов и / или файлов для исключения, создайте текстовый файл и используйте переключатель --exclude-from. Создайте файл с именем exclude_me.txt и в нем перечислены ваши исключения. Пример (/home/ben/exclude_me.txt):

.ccache
build
.java
.gvfs
.xsession-errors

Тогда ваш rsync будет выглядеть примерно так:

rsync -arv --exclude-from='/home/ben/exclude_me.txt' /home/ben /media/ben/thumbdrive/

Это некоторая информация о правилах фильтрации, которые могут помочь:

/dir/ означает исключение корневой папки /dir /dir/* означает получить корневую папку /dir, но не содержимое dir/ означает исключение любой папки где-нибудь, где имя содержит dir/ Исключенные примеры: /dir/, /usr/share/directory/, /var/spool/dir/ /var/spool/lpd/cf означает пропустить файлы, начинающиеся с cf в любой папке внутри /var/spool/lpd

Также см. раздел правил фильтрации на странице руководства.

74
ответ дан 24 May 2018 в 19:58

Вы также можете исключить несколько путей в фигурных скобках:

rsync -arv --exclude={.ccache,build} /home/ben /media/ben/thumbdrive/
55
ответ дан 24 May 2018 в 19:58
  • 1
    это работает красиво, только не под sh, только под bash, я обнаружил «жесткий путь». – xor 1 October 2015 в 12:56

Другие вопросы по тегам:

Похожие вопросы: