Compactando pastas em um mac, sem o .DS_Store

63

Existe uma maneira de se livrar do .DS_Store ao compactar uma pasta em um mac?

Trabalho em um mac e envio trabalho para clientes em formato zip, mas sempre sou questionado na pasta .DS_Store dentro deles. Parece ser inevitável, a menos que eu abra a pasta no Windows, excluo o arquivo .DS_Store e o comprimo lá. É um grande aborrecimento.

Existem soluções fáceis de contornar?

danixd
fonte

Respostas:

108

Se você não se importa de pular para o terminal, isso é bastante fácil. Se você estiver /Users/username, qual é o seu diretório $ HOME e há um subdiretório chamado foo que você deseja compactar, mas ignora todos os arquivos .DS_Store, faça o seguinte:

zip -r foo.zip foo -x "*.DS_Store"

Para interpretar isso, estamos executando o executável zip com os seguintes parâmetros / argumentos:

  • -r para incluir recursivamente todos os diretórios abaixo dos destinos que queremos compactar.
  • foo.zip é o nome do arquivo zip que estamos criando
  • foo é o diretório de destino que queremos compactar
  • -x "*.DS_Store" exclui todos os arquivos cujo caminho termina na cadeia ".DS_Store"

Não são necessários aplicativos patetas de terceiros nem você precisa lixeira seus arquivos .DS_Store - apenas confie em toda a utilidade da ferramenta unix incorporada ao OSX / Darwin.

baleia
fonte
11
Isso é perfeito, obrigado. Por interesse, como excluiria terminações de vários caminhos? Algo como zip -r foo.zip foo -x "* .DS_Store, * .svn"?
Danixd 12/10/10
5
Use o argumento -x duas vezes: zip -r foo.zip foo -x *.DS_Store -x *.svn*
whaley
Como você exclui os arquivos de ícone que o OSX cria para ícones de pastas personalizadas? Eles têm uma nova linha ou algo assim no final do nome do arquivo.
Daniel Beck
Não tenho idéia de como são os nomes de arquivos, então não posso dar nenhuma orientação real aqui.
Whaley
11
@ Daniel Beck - então continue usando o CleanArchiver e não roube a seção de comentários da pergunta de outra pessoa e aceite a resposta para chamar a solução de inferior quando obviamente funciona para o pôster original? A resposta para sua pergunta, surpreendentemente, é -x 'Icon?'. O "?" caractere em um padrão de globbing de arquivo significa "corresponder a um único caractere curinga", portanto corresponderá independentemente do que "?" é mesmo. Você pode excluir arquivos ad-hoc de qualquer tipo apenas anexando mais argumentos -x. zipé muito flexível. O que você acha que esses utilitários de terceiros realmente usam nos bastidores?
Whaley
5

Você pode criar um aplicativo de automação que aceite uma pasta como entrada e produza um arquivo zip do conteúdo da pasta, sem qualquer sujeira.

Armazene este aplicativo em / Usuários / você / Aplicativos e arraste-o para a barra de ferramentas do localizador. Em seguida, você pode arrastar pastas para o aplicativo a partir de qualquer janela do localizador.

Crie um aplicativo de automação

Adicione a etapa ' obter itens do localizador selecionado '. E também adicione uma etapa ' executar script de shell ' com a opção ' Passar entrada ' definida como ' como argumentos '.

Adicionar etapas do fluxo de trabalho

O script:

name=("$@")
cd "$name"
zipFileName=`basename "$name"`
zip "${zipFileName}.zip" -r ./* \
    -x */.DS_Store \
    -x */.git \
    -x */.svn \
    -x */.idea \
    -X */__MACOSX
mv "${zipFileName}.zip" ../

Aceita uma pasta como entrada e produz um arquivo zip com o nome da pasta.

Michiel Roos
fonte
É ótimo! Como posso modificá-lo para arrastar vários arquivos, o nome da saída deve conter dirname;
unbreak 5/09/18
2
@unbreak eu não sei. Eu já não possuir um mac ;-)
Michiel Roos
3

Não acho que haja uma maneira de fazer isso por padrão, mas há duas maneiras em que posso pensar para alcançar o que você deseja.

Primeiro, encontrei um aplicativo gratuito chamado FolderWasher . Solte a pasta no aplicativo e ele removerá os arquivos .DS_Store e compactará para você.

Como alternativa (e potencialmente melhor que o software de terceiros), você pode usar o Automator para limpar o arquivo após a criação. Na verdade, já existe uma ação criada para isso. Essa é apenas uma etapa extra e você pode arrastar a ação para o Finder para facilitar a localização.

Delameko
fonte
3

Se você já criou o arquivo zip (ou deseja uma maneira simples de remover .DS_Store após a criação de zip), isso removerá todos os arquivos .DS_Store em qualquer caminho do arquivo zip:

zip -d archive.zip "*/*.DS_Store"

A resposta da whaley ainda é definitivamente a melhor, porque pode ser apelidada e esquecida. No meu caso, criei o zip a partir do Archive Utility e percebi que deveria excluí-los.

James Taylor
fonte
2

Abra o Terminal (/Applications/Utilies/Terminal.app) e execute o seguinte comando para mostrar os arquivos ocultos:

defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder

Para ocultar os arquivos ocultos, basta executar:

defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder

Você pode excluir arquivos .DS_Store como qualquer outro arquivo sem causar danos ao seu diretório. Conforme declarado na wikipedia, "DS_Store (Desktop Services Store) é um arquivo oculto criado pelo sistema operacional Mac OS X da Apple Inc. para armazenar atributos personalizados de uma pasta, como a posição dos ícones ou a escolha de uma imagem de fundo".

Penang
fonte
2

Use o CleanArchiver para criar esses arquivos. Dessa forma, você não precisa descartar as preferências da pasta.

Daniel Beck
fonte
2

Se você executar isso no Terminal, isso os interromperá automaticamente quando você criar pastas, poderá ativá-lo novamente, se desejar.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Você pode usar o exemplo @Penang (acima) para verificar se os arquivos não são mais criados. Eu tive que fazer upload de um arquivo zip e cada pasta tinha esse arquivo e isso me ajudou.

Evan
fonte
0

Há uma explicação sobre o que são e como excluí-los no site de ajuda da Adobe de todos os lugares.

Eles são um arquivo oculto usado para armazenar a configuração de uma pasta (como posição do ícone, cor, plano de fundo da pasta e posição de rolagem. Infelizmente, parece não haver maneira de impedir que eles sejam criados permanentemente, embora a Apple admita que possa causar problemas para alguns usuários.

Trezoid
fonte