Nén các thư mục trên máy Mac, không có .DS_Store


63

Có cách nào để thoát khỏi .DS_Store khi nén thư mục trên máy mac không?

Tôi làm việc trên máy mac và gửi công việc cho khách hàng ở định dạng zip, nhưng luôn bị nghi ngờ về thư mục .DS_Store bên trong chúng. Dường như không thể tránh khỏi trừ khi tôi mở thư mục trên Windows sau đó xóa .DS_Store và nén nó ở đó. Nó là một rắc rối lớn.

Có bất kỳ công việc dễ dàng xung quanh?

Câu trả lời:


108

Nếu bạn không ngại nhảy xuống thiết bị đầu cuối, thì điều này khá dễ dàng. Nếu bạn đang ở /Users/username, đó là thư mục $ HOME của bạn và có một thư mục con có tên foo mà bạn muốn nén nhưng bỏ qua tất cả các tệp .DS_Store, thì hãy làm như sau:

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

Để giải thích điều này, chúng tôi đang chạy zip thực thi với các tham số / đối số sau:

  • -r cho đệ quy bao gồm tất cả các thư mục bên dưới các mục tiêu chúng tôi muốn nén.
  • foo.zip là tên của kho lưu trữ zip mà chúng tôi đang tạo
  • foo là thư mục đích chúng tôi muốn nén
  • -x "*.DS_Store" loại trừ tất cả các tệp có đường dẫn kết thúc trong chuỗi ".DS_Store"

Không cần các ứng dụng bên thứ ba ngớ ngẩn cũng như không cần phải dọn rác các tệp .DS_Store của bạn - chỉ cần dựa vào tất cả các tính tốt của công cụ unix được tích hợp ngay trong OSX / Darwin.


1
Điều này là hoàn hảo cảm ơn. Không quan tâm, làm thế nào tôi có thể loại trừ kết thúc nhiều đường dẫn? Một cái gì đó như zip -r foo.zip foo -x "* .DS_Store, * .svn"?
danixd

5
Sử dụng đối số -x hai lần: zip -r foo.zip foo -x *.DS_Store -x *.svn*
cá voi

Làm cách nào để loại trừ các tệp Biểu tượng mà OSX tạo cho các biểu tượng thư mục tùy chỉnh? Họ có một dòng mới hoặc một cái gì đó tương tự ở cuối tên tệp.
Daniel Beck

Tôi không biết những tên tập tin đó trông như thế nào nên tôi không thể đưa ra bất kỳ hướng dẫn thực sự nào ở đây.
cá voi

1
@Daniel Beck - vì vậy hãy tiếp tục sử dụng CleanArchiver và không chiếm quyền điều khiển phần bình luận của câu hỏi của người khác và chấp nhận câu trả lời cho cuộc gọi kém hơn khi giải pháp rõ ràng cho poster gốc? Câu trả lời cho câu hỏi của bạn, đủ đáng ngạc nhiên, là -x 'Icon?'. Các "?" ký tự trong một mẫu toàn cầu tập tin có nghĩa là "khớp với một ký tự đại diện duy nhất", do đó, nó sẽ khớp với bất kể "?" thật sự là. Bạn có thể loại trừ các tệp ad-hoc dưới bất kỳ hình thức nào bằng cách chỉ thêm các đối số -x. ziprất linh hoạt. Bạn nghĩ gì về những tiện ích của bên thứ ba thực sự sử dụng đằng sau hậu trường?
cá voi

5

Bạn có thể tạo một ứng dụng tự động hóa chấp nhận một thư mục làm đầu vào và tạo một tệp zip của nội dung thư mục mà không có bất kỳ hành động nào.

Lưu trữ ứng dụng này trong / Users / you / Application và sau đó kéo nó vào thanh công cụ tìm kiếm của bạn. Sau đó, bạn có thể kéo các thư mục vào ứng dụng từ bất kỳ cửa sổ tìm kiếm nào.

Tạo một ứng dụng tự động

Thêm bước ' nhận các mục tìm kiếm '. Và cũng thêm một bước ' chạy tập lệnh shell ' với tùy chọn ' Truyền đầu vào ' được đặt thành ' làm đối số '.

Thêm các bước công việc

Kịch bản:

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

Chấp nhận một thư mục làm đầu vào và tạo ra một tệp zip với tên của thư mục.


Thật tuyệt vời! Làm thế nào tôi có thể sửa đổi nó mà tôi có thể kéo nhiều tệp, tên đầu ra phải chứa dirname;
vỡ

2
@unbreak Tôi không biết. Tôi không còn sở hữu máy mac ;-)
Michiel Roos

3

Tôi không nghĩ có một cách để làm điều đó theo mặc định, nhưng có hai cách tôi có thể nghĩ để đạt được những gì bạn muốn.

Trước hết, tôi tìm thấy một ứng dụng miễn phí có tên là FolderWasher . Thả thư mục trên ứng dụng và nó sẽ xóa các tệp .DS_Store và nén nó cho bạn.

Ngoài ra (và có khả năng tốt hơn phần mềm của bên thứ 3), bạn có thể sử dụng Automator để dọn dẹp kho lưu trữ sau khi tạo. Thực sự đã có một hành động được tạo ra cho việc này. Đó chỉ là một bước nữa và bạn có thể kéo hành động đến Finder để dễ dàng tìm thấy.


3

Nếu bạn đã tạo kho lưu trữ zip (hoặc muốn một cách đơn giản để xóa .DS_Store tạo zip bài đăng), điều này sẽ xóa tất cả các tệp .DS_Store tại bất kỳ đường dẫn nào trong kho lưu trữ zip:

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

Câu trả lời của cá voi vẫn chắc chắn là tốt nhất, bởi vì nó có thể bị bí danh và lãng quên. Trong trường hợp của tôi, tôi đã tạo zip từ Tiện ích Lưu trữ, sau đó nhận ra rằng tôi nên xóa chúng.


2

Mở Terminal (/Appluggest/Utflower/Terminal.app) và chạy lệnh sau để hiển thị các tệp ẩn:

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

Để ẩn các tập tin ẩn chỉ cần chạy:

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

Bạn có thể xóa các tệp .DS_Store giống như bất kỳ tệp nào khác mà không gây ra bất kỳ tác hại nào cho thư mục của bạn. Như đã nêu trên wikipedia, "DS_Store (Cửa hàng Dịch vụ Máy tính để bàn) là một tệp ẩn được tạo bởi hệ điều hành Mac OS X của Apple Inc. để lưu trữ các thuộc tính tùy chỉnh của một thư mục như vị trí của các biểu tượng hoặc lựa chọn hình nền."


2

Sử dụng CleanArchiver để tạo các tài liệu lưu trữ. Bằng cách này, bạn không cần phải dọn rác tùy chọn thư mục của mình.


2

Nếu bạn chạy cái này trong Terminal, nó sẽ tự động tạo chúng khi bạn tạo các thư mục, bạn có thể bật lại nếu bạn chọn.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Sau đó, bạn có thể sử dụng ví dụ @Penang (ở trên) để xác minh xem các tệp không được tạo nữa hay không. Tôi đã phải tải lên một tệp zip và mọi thư mục đều có tệp đó trong đó và điều này đã giúp tôi.


0

Có một lời giải thích về những gì chúng là, và làm thế nào để xóa chúng trên trang web trợ giúp của tất cả các nơi.

Chúng là một tệp ẩn được sử dụng để lưu trữ cấu hình của một thư mục (như vị trí biểu tượng, màu sắc, nền thư mục và vị trí cuộn. Thật không may là dường như không có cách nào để ngăn chặn chúng được tạo vĩnh viễn, mặc dù apple thừa nhận rằng chúng có thể gây ra sự cố cho một số người dùng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.