Tenho dezenas de pastas que preciso compactar em arquivos zip individuais.
Se eu selecionar todas essas pastas no Finder e fizer "Compactar [X] Itens", recebo um arquivo zip contendo todas as pastas, enquanto o que eu quero é um arquivo zip por pasta.
Tentei criar um fluxo de trabalho com o Automator usando a ação "Criar arquivo", mas se comporta da mesma maneira: a entrada de vários arquivos / pastas gera um único arquivo zip. Não há como especificar que a ação seja executada em cada item individualmente.
Basicamente, estou procurando uma maneira de evitar a execução entediante de "Compress" no Finder em todas as pastas, uma de cada vez. Existe alguma maneira de automatizar isso?
popd
erro de digitação desnecessário e corrigidofor i in $bn*.zip; do
, o que deveria ter acontecidofor i in $bn *.zip; do
. Observe o espaço entre$bn
e*.zip
, ele estava ausente e não deveria estar. Portanto, atualize-o em sua implementação, caso contrário, ele será ativadoFile Name 2.zip
quandobasename
houver um espaço nele.Respostas:
Aqui está um Serviço de Automator 1 que fica disponível no Finder quando as Pastas são selecionadas e emula o comando Compactar [n] Itens dos menus de contexto, exceto que ele cria um arquivo zip individual para cada Pasta selecionada no nome da Pasta selecionada . Se o arquivo Folder.zip Name já existir, um ( espaço 2) será anexado ao nome do arquivo , por exemplo, Folder Name 2.zip . Isso garante um arquivo zip existente
" 2"
não é tocado e o nome do arquivo compactado será automaticamente incrementado conforme necessário.1 No macOS Mojave e, posteriormente, um Serviço do Automator é chamado de Ação rápida . Existem também outras pequenas diferenças na nomenclatura, mas elas devem ser mais óbvias ao compará-las aos fluxos de trabalho anteriores ao macOS Mojave Automator.
Para criar o serviço: 1
Abra o Automator e selecione Serviço 1 ou Arquivo > Novo > Serviço Se o Automator já estiver aberto.
Set serviço recebe selecionado para pastas e na de localizador .
Adicione uma ação Executar script do shell , configurando Shell: para / bin / bash e Passar entrada: para como argumentos e adicione o seguinte código :
Salve o serviço como: Compactar pastas separadamente
Para usar o serviço:
No Finder ou na área de trabalho, selecione várias pastas , clique com o botão direito do mouse e selecione Compactar pastas separadamente em Serviços .
Ou depois de selecionar as pastas de destino , você também pode clicar em Localizador > Serviços > Compactar pastas separadamente na barra de menus .
Aí está, uma maneira de compactar várias pastas separadamente e simultaneamente em arquivos zip individuais, enquanto emula como o Finder cria um arquivo zip. Significando que o arquivo zip contém garfos de recursos preservados e metadados HFS no subdiretório __MACOSX e incorpora apenas a origem do nome do diretório pai no arquivo de destino , não o nome do caminho completo como ao usar
zip
(sem-j
) para criar o arquivo.Imagem de compactar pastas separadamente
fonte
Existe uma solução alternativa incorporada, se você não quiser usar o Automator e não terá problemas em alterar as configurações do Archive Utility.
fonte
/System/Library/CoreServices/Applications/
(você pode pressionar Command-Shift-G quando a caixa de diálogo Selecionar arquivo está aberto para colar esse caminho para navegação rápida)