Wildcards em arquivos de inclusão de archive

0

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.

    
por forthrin 08.02.2018 / 13:50

2 respostas

0

7z (de 7-zip ) usará curingas no arquivo de lista (e pode criar arquivos em formato ZIP , além do seu próprio).

    
por 08.02.2018 / 14:17
0

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
    
por 08.02.2018 / 15:45

Tags