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?

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.


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.


É ó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.


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.


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".



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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.