7z
(de 7-zip ) usará curingas no arquivo de lista (e pode criar arquivos em formato ZIP , além do seu próprio).
Ao criar um backup usando rsync --include-from=inclusion-file
, o arquivo de inclusão suporta curingas, portanto, você pode colocar + .*rc
para incluir todos os arquivos de recursos em seu diretório inicial, por exemplo.
O Zip também suporta arquivos de inclusão, mas os curingas não funcionam, portanto, é necessário inserir cada nome de arquivo. (Eu quase diria que isso é um bug, ou uma falha estranha. Alguém pode lançar alguma luz?)
$ cat files
.*rc
$ ls .*rc
.ackrc .bashrc .mailrc
$ zip -@ out < files
zip warning: name not matched: .*rc
Alguém sabe como fazer curingas funcionar? A única solução que posso pensar é colocar os padrões de curinga na própria linha de comando, por exemplo. zip -@ out < files *.rc
.
A questão representa todas as ferramentas de arquivamento do UNIX. CEP é o preferido, mas não um requisito.
7z
(de 7-zip ) usará curingas no arquivo de lista (e pode criar arquivos em formato ZIP , além do seu próprio).
Você parece estar certo em sua avaliação da opção zip
-@
que requer nomes de arquivos literais. A documentação que eu tenho continua a dizer:
Under Unix, this option can be used to powerful effect in conjunction with the find (1) command. For example, to archive all the C source files in the current directory and its subdirectories:
find . -name "*.[ch]" -print | zip source -@
Isso poderia ser suficiente para suas necessidades? No caso simples em que você deseja arquivar todos os arquivos do diretório atual correspondente a .*rc
, apenas zip out .*rc
deve fazer (como você mencionou); Se você precisar considerar todos esses arquivos recursivamente em subpastas, a adaptação do comando find
acima poderia fazer:
find . -name '.*rc' | zip -@ out