Как включать файлы, которые исключены в rsync

Tmux устанавливает TMUX переменная среды на tmux сессиях и наборы TERM кому: screen. Это не 100%-й надежный индикатор (например, Вы не можете легко сказать, работаете ли Вы screen внутри tmux или tmux внутри screen), но это должно быть достаточно хорошо на практике.

if ! { [ "$TERM" = "screen" ] && [ -n "$TMUX" ]; } then
  PS1="@$HOSTNAME $PS1"
fi

Если необходимо интегрировать это в сложном быстром наборе через PROMPT_COMMAND (который является установкой удара, между прочим, так не должен быть экспортирован):

if [ "$TERM" = "screen" ] && [ -n "$TMUX" ]; then
  PS1_HOSTNAME=
else
  PS1_HOSTNAME="@$HOSTNAME"
fi
PROMPT_COMMAND='PS1="$PS1_HOSTNAME…"'

Если когда-нибудь необходимо тестировать, установлен ли tmux:

if type tmux >/dev/null 2>/dev/null; then
  # you can start tmux if you want
fi

Между прочим, это должно все войти ~/.bashrc, нет ~/.bash_profile (см. Различие между .bashrc и .bash_profile). ~/.bashrc выполняется в каждом экземпляре удара и содержит настройки оболочки, такие как подсказки и псевдонимы. ~/.bash_profile выполняется, когда Вы входите в систему (если Ваша оболочка входа в систему является ударом). Странно, удар не читает ~/.bashrc в оболочках входа в систему, таким образом, Ваш ~/.bash_profile должен содержать

case $- in *i*) . ~/.bashrc;; esac

16
11.04.2011, 02:06
1 ответ

Первое правило соответствия применяется, поэтому включайте .htaccess прежде, исключая .*.

rsync -avP --include=".htaccess" --exclude=".*" . user@server:/dir

Это копирует .htaccess на каждом уровне. Я не знаю то, с чем Вы предназначили ./.htaccess; если Вы хотите соответствовать файлу в корне копии только, запустите шаблон с a /. Если Вы только хотите корень .htaccess, Вы не можете просто использовать --include='/.htaccess' --exclude='.*', потому что невнедренное правило на самом деле имеет приоритет здесь, необходимо сделать что-то более сложное:

rsync -avP --exclude='/*/**/.htaccess' --include='.htaccess' --exclude=".*" . user@server:/dir

Дальнейшее чтение: основные принципы для фильтров rsync.

24
27.01.2020, 19:48
  • 1
    @fred.bear: Тот был подлинной опечаткой и противной. Спасибо за определение его! –  Gilles 'SO- stop being evil' 11.04.2011, 15:22
  • 2
    Спасибо, я попытался поместить --include во-первых, но ". /" перед "./.htaccess" был тем, что уничтожало его. –  Rich 11.04.2011, 21:26
  • 3
    @Rich, что, если существуют скрытые каталоги, которые содержат a .htaccess файл, Вы будете иметь к --include='.*/' (Я думаю) перед финалом --exclude, см. также здесь, –  Tobias Kienzler 19.11.2012, 16:47

Теги

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