Как исключить `.git`, затем сделать резервную копию и восстановить папки и файлы, владельца и разрешения? - PullRequest
0 голосов
/ 11 января 2019

Я предпочитаю использовать bash-скрипт , потому что getfacl,setfacl имеет большие проблемы (ошибка).

Прежде чем задать этот вопрос, я также ищу способ написания чистого bash сценария для резервного копирования и восстановления owner and permission. Жаль, что никто не признал идеальный ответ.

Затем я использую простой способ резервного копирования и восстановления владельца и разрешения:

getfacl -R . >permissions.facl
setfacl --restore=permissions.facl

Если я хочу исключить .git из ., как это сделать?

1 Ответ

0 голосов
/ 11 января 2019

Да, вы можете.

Например, мой каталог выглядит как

[root@967dd7743677 test]# ls -la
total 20
drwxr-xr-x 4 root root 4096 Jan 11 06:37 .
drwxr-xr-x 1 root root 4096 Jan  2 11:08 ..
drwxr-xr-x 8 root root 4096 Jan  2 12:56 .git
drwxr-xr-x 2 root root 4096 Jan 11 06:37 1one
-rw-r--r-- 1 root root   19 Jan  2 12:55 testfile
[root@967dd7743677 test]#

с помощью find вы можете исключить любой каталог, который хотите

find . -type f -not -path '*/\.git/*' -exec getfacl -R {} \;

поэтому через -exec мы звоним getfacl -R.

и вы можете перенаправить вывод

find . -type f -not -path '*/\.git/*' -exec getfacl -R {} \; > permissions.facl

Надеюсь, это поможет.

...