Comprimere le cartelle su un mac, senza .DS_Store


63

Esiste un modo per sbarazzarsi di .DS_Store quando si comprime una cartella su un mac?

Lavoro su un Mac e invio lavoro ai client in formato zip, ma vengo sempre interrogato sulla cartella .DS_Store al loro interno. Sembra inevitabile a meno che non apra la cartella su Windows, quindi elimino il file .DS_Store e lo comprimo lì. È una seccatura piuttosto grande.

Ci sono facili soluzioni?

Risposte:


108

Se non ti dispiace saltare giù al terminal, allora è dannatamente facile. Se ci si trova /Users/username, che è la directory $ HOME e esiste una sottodirectory denominata foo che si desidera comprimere ma ignorare tutti i file .DS_Store, procedere come segue:

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

Per interpretarlo, stiamo eseguendo il file eseguibile zip con i seguenti parametri / argomenti:

  • -r per includere ricorsivamente tutte le directory sotto gli obiettivi che vogliamo comprimere.
  • foo.zip è il nome dell'archivio zip che stiamo creando
  • foo è la directory di destinazione che vogliamo comprimere
  • -x "*.DS_Store" esclude tutti i file il cui percorso termina nella stringa ".DS_Store"

Non sono necessarie applicazioni sciocche di terze parti né è necessario eliminare i file .DS_Store: basta fare affidamento su tutta la bontà degli strumenti unix incorporata direttamente in OSX / Darwin.


1
Questo è perfetto grazie. Per interesse, come escluderei le terminazioni multi percorso? Qualcosa come zip -r foo.zip foo -x "* .DS_Store, * .svn"?
danixd,

5
Usa due volte l'argomento -x: zip -r foo.zip foo -x *.DS_Store -x *.svn*
whaley,

Come si escludono i file icona creati da OSX per le icone delle cartelle personalizzate? Hanno una nuova riga o qualcosa del genere alla fine del nome file.
Daniel Beck

Non ho idea di come siano questi nomi di file, quindi non posso dare una vera guida qui.
Whaley,

1
@Daniel Beck - quindi continua a utilizzare CleanArchiver e non dirottare la sezione dei commenti della domanda di qualcun altro e accettare la risposta alla chiamata la soluzione inferiore quando ovviamente funziona per il poster originale? La risposta alla tua domanda, sorprendentemente, è -x 'Icon?'. Il "?" il carattere in un modello globbing di file significa "abbina un singolo carattere jolly", quindi corrisponderà indipendentemente da ciò che "?" davvero è. Puoi escludere file ad-hoc di qualsiasi tipo semplicemente aggiungendo più argomenti -x. zipè molto flessibile. Cosa pensi che queste utility di terze parti usino davvero dietro le quinte?
Whaley,

5

È possibile creare un'applicazione di automazione che accetta una cartella come input e produce un file zip del contenuto della cartella senza alcuna sequenza.

Archivia questa applicazione in / Utenti / tu / Applicazioni e trascinala nella barra degli strumenti del Finder. Quindi puoi trascinare le cartelle sull'app da qualsiasi finestra del Finder.

Creare un'applicazione di automazione

Aggiungi il passaggio " ottieni elementi di ricerca selezionati ". E aggiungi anche un passaggio ' esegui script di shell ' con l' opzione ' Pass input ' impostata su ' as argomenti '.

Aggiungi passaggi del flusso di lavoro

Il copione:

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

Accetta una cartella come input e produce un file zip con il nome della cartella.


È ottimo! Come posso modificarlo per poter trascinare più file, il nome di output dovrebbe contenere dirname;
sbloccare il

2
@unbreak non lo so. Non possiedo più un mac ;-)
Michiel Roos,

3

Non penso che ci sia un modo per farlo di default, ma ci sono due modi in cui posso pensare di ottenere ciò che vuoi.

Prima di tutto, ho trovato un'app gratuita chiamata FolderWasher . Rilascia la cartella sull'app e rimuoverà i file .DS_Store e la comprimerà per te.

In alternativa (e potenzialmente migliore del software di terze parti) è possibile utilizzare Automator per pulire l'archivio dopo la creazione. In realtà esiste già un'azione creata per questo. Questo è solo un ulteriore passaggio e puoi trascinare l'azione sul Finder in modo che sia facile da trovare.


3

Se hai già creato l'archivio zip (o desideri un modo semplice per rimuovere la creazione di zip post .DS_Store), questo rimuoverà tutti i file .DS_Store in qualsiasi percorso nell'archivio zip:

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

La risposta di Whaley è ancora sicuramente la migliore, perché può essere aliasata e dimenticata. Nel mio caso, ho creato lo zip dall'utilità di archiviazione, quindi ho capito che avrei dovuto eliminarli.


2

Apri Terminal (/Applications/Utilies/Terminal.app) ed esegui il seguente comando per mostrare i file nascosti:

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

Per nascondere i file nascosti è sufficiente eseguire:

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

Puoi eliminare i file .DS_Store come qualsiasi altro file senza causare danni alla tua directory. Come affermato su wikipedia, "DS_Store (Desktop Services Store) è un file nascosto creato dal sistema operativo Mac OS X di Apple Inc. per memorizzare gli attributi personalizzati di una cartella come la posizione delle icone o la scelta di un'immagine di sfondo".



2

Se lo esegui nel Terminale, questo li interrompe automaticamente quando crei le cartelle, puoi riaccenderlo se lo desideri.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

È quindi possibile utilizzare l'esempio @Penang (sopra) per verificare se i file non vengono più creati. Ho dovuto caricare un file zip e ogni cartella conteneva quel file e questo mi ha aiutato.


0

C'è una spiegazione di cosa sono e come eliminarli sul sito di aiuto di Adobe in tutti i luoghi.

Sono un file nascosto utilizzato per memorizzare la configurazione di una cartella (come la posizione dell'icona, il colore, lo sfondo della cartella e la posizione di scorrimento. Sfortunatamente non sembra esserci modo di impedirne la creazione permanente, anche se Apple ammette che possono causare problemi per alcuni utenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.