Mac'teki klasörleri .DS_Store olmadan sıkıştırma


63

Mac'te bir klasörü sıkıştırırken .DS_Store'dan kurtulmak için yine de var mı?

Bir mac üzerinde çalışıyorum ve müşterilere zip biçiminde iş gönderiyorum, ancak her zaman içindeki .DS_Store klasöründe sorgulanıyorum. Windows'taki klasörü açıp. Bu oldukça büyük bir güçlük.

Etrafta kolay iş var mı?

Yanıtlar:


108

Terminale atlamak sorun olmazsa, o zaman bu oldukça kolay. Eğer içinde bulunduğunuz /Users/username$ HOME dizini olan ve daha sonra aşağıdakileri yapın zip ancak tüm .DS_Store dosyaları görmezden istediğiniz bir alt dizin adında foo vardır:

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

Bunu yorumlamak için zip çalıştırılabilirini aşağıdaki parametreler / argümanlar ile çalıştırıyoruz:

  • -r Hedeflerimizin altındaki tüm dizinleri yinelemeli olarak eklemek istiyoruz.
  • foo.zip oluşturduğumuz zip arşivinin adı
  • foo sıkıştırmak istediğimiz hedef dizin
  • -x "*.DS_Store" ".DS_Store" dizesinde biten tüm dosyaları içermez

Aptal üçüncü parti uygulamalara gerek yok, ne de .DS_Store dosyalarınızı çöpe atmanıza gerek yok - sadece OSX / Darwin’te yerleşik olan tüm unix araçlarının iyiliğine güvenin.


1
Bu mükemmel, teşekkürler. İlgi alanı dışında, çoklu yol sonlarını nasıl hariç tutabilirim? Zip gibi bir şey -r foo.zip foo -x "* .DS_Store, * .svn"?
danixd

5
zip -r foo.zip foo -x *.DS_Store -x *.svn*
-X

OSX'in özel klasör simgeleri için oluşturduğu Simge dosyalarını nasıl dışlarsınız? Dosya adının sonunda yeni bir satır veya buna benzer bir şey var.
Daniel Beck

Bu dosya adlarının nasıl göründüğü hakkında hiçbir fikrim yok, bu yüzden burada gerçek bir rehberlik yapamam.
whaley

1
@Daniel Beck - öyleyse CleanArchiver'ı kullanmaya devam et ve başkasının sorusunun yorum bölümüne kaçırma ve orjinal poster için açık bir şekilde işe yaradığında açıkça çözüm aramaya cevap vermedi mi? Sorunuzun cevabı, şaşırtıcı derecede, öyle -x 'Icon?'. "?" dosya globbing desenindeki karakter "tek bir joker karakterle eşleştirme" anlamına gelir, bu nedenle "?" ne olursa olsun eşleşir gerçekten. Yalnızca daha fazla-argüman ekleyerek herhangi bir geçici dosyayı hariç tutabilirsiniz. zipçok esnektir. Sizce bu üçüncü parti yardımcıları sahnelerin gerisinde ne kullanıyor?
Whaley

5

Bir klasörü giriş olarak kabul eden ve herhangi bir zorlukla açmadan klasör içeriğinin zip dosyasını üreten bir otomator uygulaması oluşturabilirsiniz.

Bu uygulamayı / Users / you / Applications uygulamasına kaydedin ve ardından finder araç çubuğunuza sürükleyin. Ardından klasörleri uygulamaya herhangi bir bulucu penceresinden sürükleyebilirsiniz.

Bir otomatikleştirici uygulaması oluşturun

' Seçili bulma öğelerini al ' adımını ekleyin . Ayrıca , ' argümanlar ' olarak ayarlanan ' Pass input ' seçeneğiyle ' run shell script ' adımı ekleyin .

İş akışı adımları ekle

Senaryo:

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

Bir klasörü giriş olarak kabul eder ve klasör adıyla bir zip dosyası oluşturur.


Bu harika! Nasıl birden fazla dosyayı sürükleyebileceğimi nasıl değiştirebilirim, çıktı adı dirname içermeli;
18'de

2
@ unbreak bilmiyorum. Artık bir mac sahibi değilim ;-)
Michiel Roos

3

Varsayılan olarak yapmanın bir yolu olduğunu sanmıyorum, ancak istediğinizi elde etmek için düşünebileceğim iki yol var.

İlk önce, FolderWasher adlı ücretsiz bir uygulama buldum . Klasörü uygulamaya bırakın, .DS_Store dosyalarını kaldırın ve sizin için sıkıştırın.

Alternatif olarak (ve 3. parti yazılımlardan potansiyel olarak daha iyi), oluşturulduktan sonra arşivi temizlemek için Automator kullanabilirsiniz. Aslında bunun için yaratılmış bir eylem var . Bu yalnızca bir ilave adımdır ve eylemi Finder'a sürükleyerek bulmanız kolay olur.


3

Zip arşivini zaten oluşturduysanız (veya .DS_Store zip oluşturma işlemini kaldırmanın basit bir yolunu istiyorsanız), bu, zip arşivindeki herhangi bir yoldaki tüm .DS_Store dosyalarını kaldırır:

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

whaley'nin cevabı hala kesinlikle en iyisidir, çünkü takma ve unutulmuş olabilir. Benim durumumda, zip'i Archive Utility'den oluşturdum, sonra bunları silmem gerektiğini anladım.


2

Terminal'i açın (/Applications/Utilies/Terminal.app) ve gizli dosyaları göstermek için aşağıdaki komutu çalıştırın:

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

Gizli dosyaları gizlemek için basitçe çalıştırın:

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

Dizininize zarar vermeden, diğer dosyalar gibi .DS_Store dosyalarını silebilirsiniz. Wikipedia'da belirtildiği gibi, "DS_Store (Masaüstü Hizmetleri Mağazası), Apple Inc.'in Mac OS X işletim sistemi tarafından, simgelerin konumu veya arka plan görüntüsünün seçimi gibi bir klasörün özel niteliklerini saklamak için oluşturulan gizli bir dosyadır."



2

Bunu Terminal'de çalıştırırsanız, bu klasörler oluşturduğunuzda otomatik olarak oluşturulmalarını engeller, eğer isterseniz tekrar açabilirsiniz.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Daha sonra, dosyaların artık oluşturulup oluşturulmadığını doğrulamak için @Penang örneği (yukarıda) kullanabilirsiniz. Bir zip dosyası yüklemek zorunda kaldım ve her klasörde bu dosya vardı ve bu bana yardımcı oldu.


0

Ne oldukları ve bunların adobe yardım sitesinde nasıl silineceği hakkında bir açıklama vardır .

Bir klasörün yapılandırmasını depolamak için kullanılan gizli bir dosyadır (simge konumu, renk, klasör arka planı ve kaydırma konumu gibi). Bazı kullanıcılar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.