Você pode usar o rsync . Ele também tem o recurso interessante que preserva o proprietário / grupo / perms etc
rsync -avi --exclude '*.log' .znc/ /path/to/destination/directory/
Eu preciso de um script (pode ser bash, ksh ou qualquer outro) que copie, para fins de backup, todos os subdiretórios e arquivos de um diretório: .znc - mas arquivos .log.
A estrutura é assim:
.znc/users
.znc/users/username/moddata/
.znc/users/username/moddata/log
.znc/users/username/moddata/log/files.log
.znc/users/username2/moddata/
.znc/users/username2/moddata/log
.znc/users/username2/moddata/log/files.log
Note que isso é apenas parte da estrutura, mas essa é a parte com a qual estou tendo problemas.
Eu preciso copiar todo o conteúdo de .znc / mas arquivos cuja extensão é "log".
Não consegui fazer muito com find
ou grep
, porque existe uma variável, nome de usuário.
Você pode usar o rsync . Ele também tem o recurso interessante que preserva o proprietário / grupo / perms etc
rsync -avi --exclude '*.log' .znc/ /path/to/destination/directory/
Fora do topo da minha cabeça:
cd /to/top/of/dir/structure
tar -cvf /path/to/tarfile.tar $(find . -type f ! -name '*.log')
Isso não funcionará se os arquivos tiverem espaços.
Isso pode funcionar se os nomes dos arquivos tiverem espaços
cd /to/top/of/dir/structure
tar -cf /path/to/tarfile.tar --files-from /dev/null # trick to create empty tar file
find . -type f ! -name '*.log' -print0 | xargs -0 tar -uvf /path/to/tarfile.tar
Tags linux