การบีบอัดโฟลเดอร์ในเครื่อง mac โดยไม่มี. DS_Store


63

มีอยู่เพื่อกำจัด. DS_Store เมื่อบีบอัดโฟลเดอร์ใน mac?

ฉันทำงานบน mac และส่งงานให้กับลูกค้าในรูปแบบ zip แต่มักจะถูกถามในโฟลเดอร์. DS_Store ภายในพวกเขา ดูเหมือนว่าจะหลีกเลี่ยงไม่ได้เว้นแต่ฉันจะเปิดโฟลเดอร์บน Windows จากนั้นลบ. DS_Store และบีบอัดไฟล์นั้น มันค่อนข้างยุ่งยากใหญ่

มีวิธีแก้ปัญหาง่าย ๆ ไหม?

คำตอบ:


108

หากคุณไม่รังเกียจที่จะกระโดดลงไปที่เทอร์มินัลนี่ก็ค่อนข้างง่าย หากคุณอยู่ใน/Users/usernameซึ่งเป็นไดเรกทอรี $ HOME ของคุณและมีไดเรกทอรีย่อยชื่อ foo ที่คุณต้องการซิป แต่ไม่ต้องสนใจไฟล์. DS_Store ทั้งหมดให้ทำดังนี้

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

ในการตีความสิ่งนี้เรากำลังเรียกใช้ zip ที่สามารถเรียกทำงานได้ด้วยพารามิเตอร์ / อาร์กิวเมนต์ต่อไปนี้:

  • -r สำหรับการเรียกซ้ำรวมถึงไดเรกทอรีทั้งหมดภายใต้เป้าหมายที่เราต้องการซิป
  • foo.zip เป็นชื่อของไฟล์ zip ที่เรากำลังสร้าง
  • foo เป็นไดเรกทอรีเป้าหมายที่เราต้องการซิปขึ้น
  • -x "*.DS_Store" แยกไฟล์ทั้งหมดที่มีพา ธ สิ้นสุดในสตริง ".DS_Store"

ไม่ต้องการแอปพลิเคชันของบุคคลที่สามที่โง่เขลาและคุณไม่จำเป็นต้องทิ้งไฟล์. DS_Store ของคุณเลย - พึ่งเครื่องมือยูนิกซ์ทั้งหมดที่สร้างขึ้นใน OSX / Darwin


1
นี่เป็นคำขอบคุณที่สมบูรณ์แบบ ฉันจะยกเว้นจุดสิ้นสุดหลายเส้นทางได้อย่างไร คล้ายกับ zip -r foo.zip foo -x "* .DS_Store, * .svn"?
danixd

5
ใช้อาร์กิวเมนต์ -x สองครั้ง: zip -r foo.zip foo -x *.DS_Store -x *.svn*
whaley

คุณจะแยกไอคอน - ไฟล์ OSX ที่สร้างสำหรับไอคอนโฟลเดอร์ที่กำหนดเองได้อย่างไร พวกเขามีการขึ้นบรรทัดใหม่หรืออะไรทำนองนั้นในตอนท้ายของชื่อไฟล์
Daniel Beck

ฉันไม่รู้เลยว่าชื่อไฟล์เหล่านั้นเป็นอย่างไรดังนั้นฉันจึงไม่สามารถให้คำแนะนำที่แท้จริงได้ที่นี่
Whaley

1
@Daniel Beck - ให้ใช้ CleanArchiver ต่อไปและอย่าจี้ส่วนความคิดเห็นของคำถามของคนอื่นและยอมรับคำตอบในการโทรหาโซลูชันที่ด้อยกว่าเมื่อเห็นได้ชัดว่าใช้ได้กับโปสเตอร์ดั้งเดิมหรือไม่ -x 'Icon?'คำตอบสำหรับคำถามของคุณที่น่าอัศจรรย์ใจพอเป็น "" อักขระในรูปแบบไฟล์ globbing หมายถึง "จับคู่อักขระตัวแทนเดียว" ดังนั้นมันจะจับคู่โดยไม่คำนึงถึงสิ่งที่ "?" จริงๆคือ คุณสามารถยกเว้นไฟล์ ad-hoc ใด ๆ เพียงแค่ผนวกอาร์กิวเมนต์ -x เพิ่มเติม zipมีความยืดหยุ่นมาก คุณคิดว่าอะไรที่เป็นประโยชน์ของบุคคลที่สามเหล่านี้ใช้จริงเบื้องหลัง
Whaley

5

คุณสามารถสร้างแอปพลิเคชันอัตโนมัติที่ยอมรับโฟลเดอร์เป็นอินพุตและสร้างไฟล์ซิปของเนื้อหาของโฟลเดอร์โดยไม่ต้อง cruft ใด ๆ

เก็บแอปพลิเคชันนี้ใน / Users / you / Applications จากนั้นลากไปไว้ในแถบเครื่องมือค้นหา จากนั้นคุณสามารถลากโฟลเดอร์ไปยังแอพจากหน้าต่างค้นหาใด ๆ

สร้างแอปพลิเคชันอัตโนมัติ

เพิ่มขั้นตอน' รับรายการค้นหาที่เลือก ' และเพิ่มขั้นตอน' เรียกใช้สคริปต์เชลล์ ' ด้วยตัวเลือก ' ป้อนข้อมูลผ่าน ' ซึ่งตั้งค่าเป็น ' เป็นอาร์กิวเมนต์ '

เพิ่มขั้นตอนเวิร์กโฟลว์

สคริปต์:

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

ยอมรับโฟลเดอร์เป็นอินพุตและสร้างไฟล์ zip ด้วยชื่อของโฟลเดอร์


มันยอดเยี่ยมมาก! ฉันจะแก้ไขได้อย่างไรว่าฉันสามารถลากหลายไฟล์ชื่อเอาท์พุทควรมี dirname;
unbreak

2
@unbreak ฉันไม่รู้ ฉันไม่ได้เป็นเจ้าของ mac ;-) อีกต่อไป
Michiel Roos

3

ฉันไม่คิดว่าจะมีวิธีการทำตามค่าเริ่มต้น แต่มีสองวิธีที่ฉันสามารถคิดเพื่อให้บรรลุสิ่งที่คุณต้องการ

ก่อนปิดผมพบว่าแอปฟรีที่เรียกว่าFolderWasher วางโฟลเดอร์ในแอพแล้วมันจะลบไฟล์. DS_Store และซิปให้คุณ

อีกทางเลือกหนึ่ง (และอาจดีกว่าซอฟต์แวร์ของ บริษัท อื่น) คุณสามารถใช้ Automator เพื่อล้างข้อมูลที่เก็บถาวรหลังการสร้าง มีการกระทำที่สร้างขึ้นสำหรับสิ่งนี้แล้ว นั่นเป็นเพียงขั้นตอนเดียวเท่านั้นและคุณสามารถลากแอคชั่นไปที่ Finder เพื่อให้ค้นหาได้ง่าย


3

หากคุณได้สร้างไฟล์ zip แล้ว (หรือต้องการวิธีง่ายๆในการลบ. DS_Store การโพสต์ไฟล์ zip) สิ่งนี้จะลบไฟล์. DS_Store ทั้งหมดที่พา ธ ใด ๆ ในไฟล์ zip:

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

คำตอบของปลาวาฬยังคงเป็นคำตอบที่ดีที่สุดอย่างแน่นอนเพราะมันสามารถใช้นามแฝงและลืมได้ ในกรณีของฉันฉันสร้างรหัสไปรษณีย์จากยูทิลิตี้การเก็บถาวรจากนั้นฉันก็รู้ว่าฉันควรจะลบสิ่งเหล่านี้


2

เปิด Terminal (/Applications/Utilies/Terminal.app) และเรียกใช้คำสั่งต่อไปนี้เพื่อแสดงไฟล์ที่ซ่อน:

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

หากต้องการซ่อนไฟล์ที่ซ่อนอยู่ให้เรียกใช้:

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

คุณสามารถลบไฟล์. DS_Store เหมือนกับไฟล์อื่น ๆ โดยไม่ก่อให้เกิดอันตรายกับไดเรกทอรีของคุณ ตามที่ระบุไว้ในวิกิพีเดีย "DS_Store (Desktop Services Store) เป็นไฟล์ที่ซ่อนที่สร้างขึ้นโดยระบบปฏิบัติการ Mac OS X ของ Apple Inc. เพื่อจัดเก็บแอตทริบิวต์ที่กำหนดเองของโฟลเดอร์เช่นตำแหน่งไอคอนหรือตัวเลือกภาพพื้นหลัง"


2

ใช้CleanArchiverเพื่อสร้างคลังข้อมูลเหล่านั้น วิธีนี้คุณไม่จำเป็นต้องทิ้งการตั้งค่าโฟลเดอร์ของคุณ


2

หากคุณเรียกใช้สิ่งนี้ในเทอร์มินัลสิ่งนี้จะหยุดพวกเขาที่สร้างขึ้นโดยอัตโนมัติเมื่อคุณสร้างโฟลเดอร์คุณสามารถเปิดใหม่ได้หากคุณเลือก

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

จากนั้นคุณสามารถใช้ตัวอย่าง @Penang (ด้านบน) เพื่อตรวจสอบว่าไฟล์ไม่ได้ถูกสร้างขึ้นอีกต่อไป ฉันต้องอัปโหลดไฟล์ zip และทุกโฟลเดอร์มีไฟล์นั้นอยู่และสิ่งนี้ก็ช่วยฉันได้


0

มีคำอธิบายเกี่ยวกับสิ่งที่พวกเขาเป็นและวิธีการลบพวกเขาในเว็บไซต์ช่วยเหลือ adobeทุกสถานที่

พวกเขาเป็นไฟล์ที่ซ่อนไว้ที่ใช้ในการจัดเก็บการกำหนดค่าของโฟลเดอร์ (เช่นตำแหน่งไอคอน, สี, พื้นหลังโฟลเดอร์และตำแหน่งเลื่อน แต่น่าเสียดายที่ไม่มีวิธีที่จะหยุดพวกเขาถูกสร้างขึ้นอย่างถาวรแม้ว่า Apple ยอมรับว่าพวกเขาสามารถทำให้เกิดปัญหา ผู้ใช้บางคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.