LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Куда лучше было бы всего один работающий пример для моего случая.

Можете привести такой?

Легко:

$ ls -laR tmp1
tmp1:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 .test/
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

tmp1/.test:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test1
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test2
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test3
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 test_dir/

tmp1/.test/test_dir:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file3

$ ls -laR tmp2
tmp2:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:20 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../

делаем rsync

$ rsync -avH --exclude=".test/***" tmp1/ tmp2/ 
sending incremental file list
./
file1
file2
file3

sent 229 bytes  received 80 bytes  618.00 bytes/sec
total size is 0  speedup is 0.00
$ ls -laR tmp2
tmp2:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

С двумя звёздами:

$ rsync -avH --exclude=".test/**" tmp1/ tmp2/
sending incremental file list
./
file1
file2
file3
.test/

sent 268 bytes  received 84 bytes  704.00 bytes/sec
total size is 0  speedup is 0.00
tmp2:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 .test/
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

tmp2/.test:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ../

Все exclude паттерны относительны. Если добавить / в начале паттерна exclude, то паттерн будет работать только для tmp/.test, а не для любых директорий .test встретившихся в глубине tmp/

Про ман лучше не надо, битый час изучал, и все равно синтаскис для меня все равно непонятен.

Значит сиди на венде.

Исправление Stanson, :

Куда лучше было бы всего один работающий пример для моего случая.

Можете привести такой?

Легко:

$ ls -laR tmp1
tmp1:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 .test/
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

tmp1/.test:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test1
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test2
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test3
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 test_dir/

tmp1/.test/test_dir:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file3

$ ls -laR tmp2
tmp2:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:20 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../

делаем rsync

$ rsync -avH --exclude=".test/***" tmp1/ tmp2/ 
sending incremental file list
./
file1
file2
file3

sent 229 bytes  received 80 bytes  618.00 bytes/sec
total size is 0  speedup is 0.00
$ ls -laR tmp2
tmp2:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

С двумя звёздами:

$ rsync -avH --exclude=".test/**" tmp1/ tmp2/
sending incremental file list
./
file1
file2
file3
.test/

sent 268 bytes  received 84 bytes  704.00 bytes/sec
total size is 0  speedup is 0.00
tmp2:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 .test/
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

tmp2/.test:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ../

Все exclude паттерны относительны источника. Если добавить / в начале паттерна exclude, то паттерн будет работать только для tmp/.test, а не для любых директорий .test встретившихся в глубине tmp/

Про ман лучше не надо, битый час изучал, и все равно синтаскис для меня все равно непонятен.

Значит сиди на венде.

Исходная версия Stanson, :

Куда лучше было бы всего один работающий пример для моего случая.

Можете привести такой?

Легко:

$ ls -laR tmp1
tmp1:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 .test/
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

tmp1/.test:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test1
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test2
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 test3
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 test_dir/

tmp1/.test/test_dir:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:13 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:13 file3

$ ls -laR tmp2
tmp2:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:20 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../

делаем rsync

$ rsync -avH --exclude=".test/***" tmp1/ tmp2/ 
sending incremental file list
./
file1
file2
file3

sent 229 bytes  received 80 bytes  618.00 bytes/sec
total size is 0  speedup is 0.00
$ ls -laR tmp2
tmp2:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

С двумя звёздами:

$ rsync -avH --exclude=".test/**" tmp1/ tmp2/
sending incremental file list
./
file1
file2
file3
.test/

sent 268 bytes  received 84 bytes  704.00 bytes/sec
total size is 0  speedup is 0.00
tmp2:
total 12
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ./
drwxr-xr-x 7 stanson users 4096 Dec  9 13:12 ../
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 .test/
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file1
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file2
-rw-r--r-- 1 stanson users    0 Dec  9 13:12 file3

tmp2/.test:
total 8
drwxr-xr-x 2 stanson users 4096 Dec  9 13:13 ./
drwxr-xr-x 3 stanson users 4096 Dec  9 13:12 ../

Про ман лучше не надо, битый час изучал, и все равно синтаскис для меня все равно непонятен.

Значит сиди на венде.