Я прочитал десятки других ответов по этому поводу, но ни один из них не работает.
У меня есть несколько подобных каталогов
Demultiplexing/Run1/analysis/
Demultiplexing/Run1/output/
Demultiplexing/Run2/analysis/
Demultiplexing/Run2/output/
OtherProjects/Run1/analysis/
OtherProjects/Run1/output/
OtherProjects/Run2/analysis/
OtherProjects/Run2/output/
Я хочу скопировать следующее:
только Demultiplexing
каталоги
только output
подкаталоги
исключить файлы с :
во имя
Я пробовал варианты следующей команды:
remote_dir="/home/$(whoami)/production"
remote_server="server.org"
production_dir="/data/production"
rsync --dry-run -vrthP -e ssh "${production_dir}/" "$(whoami)"@"${remote_server}":"${remote_dir}/" \
--include="Demultiplexing" \
--include="Demultiplexing/*/output" \
--exclude="*:*" \
--exclude="*"
Однако это не работает, это соответствует только верхнему уровню Demultiplexing
каталог и больше ничего. Я пробовал много других комбинаций, и все они либо включают все, либо исключают все.
Догадаться:
rsync -vrthP -e ssh "${production_dir}/" "$(whoami)"@"${remote_server}":"${remote_dir}/" \
--include="Demultiplexing" \
--include="Demultiplexing/*" \
--include="Demultiplexing/*/output/***" \
--exclude="*:*" \
--exclude="*"
Еще одна попытка:
[root@localhost ~]# rsync -avni --include=output --exclude=OtherProjects --exclude=analysis --exclude='*:*' src/ dst/
sending incremental file list
.d..t...... ./
cd+++++++++ Demultiplexing/
cd+++++++++ Demultiplexing/Run1/
cd+++++++++ Demultiplexing/Run1/output/
>f+++++++++ Demultiplexing/Run1/output/test
cd+++++++++ Demultiplexing/Run2/
cd+++++++++ Demultiplexing/Run2/output/
sent 167 bytes received 38 bytes 410.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)