Vô hiệu hóa lưu trữ các tập tin vô hình, tập tin trực tuyến trên mạng cfs hoặc smb của tôi


34

Tôi sử dụng OS X Mavericks và có một số ổ lưu trữ của công ty được gắn (sử dụng smb hoặc cfs). (smb: //username@address.path.toserver.com/directory/data). Khi tôi làm việc với các tệp trên ổ đĩa hoặc sao chép các tệp vào ổ đĩa, một số tệp ẩn được tạo. Hầu hết các tệp này bắt đầu bằng dấu chấm ._và sau đó là tên tệp của tệp gốc, như:

._test001.png
._test002.png
._test003.png

Và hầu hết thời gian, nổi tiếng ._.DS_Store.DS_Storecũng ở đó.

Trên máy Mac của tôi, các .mục chấm này là vô hình, nhưng các đồng nghiệp windows của tôi thấy các tệp này. Làm cách nào tôi có thể ngăn OS X tạo các tệp vô hình lạ này?

Trên support.apple.com (và các nguồn internet khác), bạn có thể tìm thấy một 'mặc định ghi' để vô hiệu hóa việc tạo các tệp .DS_Store trên các ổ đĩa mạng của bạn. Nhưng điều này không hoạt động trong Mavericks:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Bây giờ tôi sử dụng oneliner này, nhưng làm một rm -rfcảm giác sai trong trường hợp này.

find . -type f -name "._*" -exec rm "{}" \;

Chỉnh sửa: Tôi không muốn xóa các tệp hoặc loại trừ chúng khỏi sao chép. Tôi muốn chúng không được tạo ra ngay từ đầu.

Chỉnh sửa: Tôi thích giải pháp OS X 'bản địa' hơn các ứng dụng của bên thứ ba.

Chỉnh sửa: Câu hỏi này có hai câu trả lời, một cho các tệp ._ và một cho các tệp .DS_Store. Tiền thưởng được thưởng dot_clean, ứng dụng dòng lệnh gốc này sẽ xóa tất cả các tệp ._. Thật không may là không xóa các tệp .DS_Store, điều này có thể được thực hiện với Asepsis một cách hiệu quả. Asepsis lưu trữ .DS_Stores ở một vị trí cố định và không nằm trong chính thư mục.


Tôi không chắc liệu những đề xuất này có giải quyết được vấn đề của bạn hay không, vì vậy hãy để lại những bình luận này. 1. Hãy thử TinkerTool bresink.com/osx/TinkerTool.html và sử dụng Finder> "Không tạo các tệp .DS_Store ẩn qua kết nối mạng". 2. Thử các tùy chọn hệ thống bí mật Ngăn bí mật.blacktree.com và bỏ chọn Finder> Sử dụng .DS_Stores trên mạng.

@gentlemanhog, tôi sẽ thử đề xuất của bạn. Nhưng tôi thích giải pháp OS X 'bản địa' hơn các ứng dụng của bên thứ ba.
Anh em họ

@gentlemanhog, thật không may, giải pháp của bạn không hoạt động trong Mavericks.
Anh em họ

Câu trả lời:


31

Tôi sẽ thừa nhận, tôi đã không nhận thấy rằng defaults writelệnh ngừng hoạt động trong Mavericks. Tuy nhiên, khi tôi làm sạch các kết nối mạng, thay vì một lớp lót của bạn findrm, tôi sử dụng:

dot_clean .

Manfile giải thích:

dot_clean -- Merge ._* files with corresponding native files.

Tôi không sử dụng cờ -m, nhưng bạn có thể thấy nó hữu ích trong tình huống của bạn.

-m      Always delete dot underbar files.

Đây là một người khác đang tích cực cố gắng ngăn chặn các tệp .DS_Store được tạo: http://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/ - có vẻ như anh ta không muốn chúng trên các ổ đĩa nhiều như anh ta không muốn họ trên mạng!


Đây là một công cụ phù hợp cho công việc. Thật không may, giải pháp này là gắn 'bài' và cần chạy sau khi quá trình gắn kết xảy ra. Ứng dụng này hoạt động tốt hơn ( apple.stackexchange.com/a/136558/55028 ) nhưng là một ứng dụng của bên thứ ba và chỉ hoạt động trên các tệp .DS_Store và chỉ hoạt động cho tất cả các tệp .DS_Store trên mỗi lần gắn kết.
CousinCocaine

12

Chỉ cần thử và điều này không hoạt động trong Mavericks (ít nhất là để vô hiệu hóa .DS_Store không chia sẻ mạng):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Bạn chỉ cần nhớ khởi động lại Finder:

killall Finder

1
Điều này không hoạt động trên El Capitan, cho một ổ Samba. .DS_Storecác tệp vẫn đang được tạo
Sébastien

Các .DS_Storetệp AppleDouble không phải là các tệp vô hình "bình thường" được tạo bởi Finder. Vì vậy, việc bạn nhìn thấy các tệp .DS_Store đó không cho biết liệu có DSDontWriteNetworkStoreshoạt động hay không.
Thomas Tempelmann

4

Các ._tệp này là các tệp AppleDouble được sử dụng để lưu trữ siêu dữ liệu như các thuộc tính mở rộng, ACL, cờ tệp và các nhánh tài nguyên.

Để xóa chúng, hãy chạy:

find . -name ._\* -delete

Bạn có thể xem các tệp có thuộc tính mở rộng, ACL hoặc cờ tệp với ls -l@eO. Các ._tệp thường được tạo vì các tệp có thuộc tính mở rộng. Bạn có thể sử dụng xattr -cđể xóa các thuộc tính mở rộng hoặc chmod -Nxóa ACL. cp -Xrsyncsao chép các tệp mà không có thuộc tính mở rộng, ACL, cờ tệp hoặc nhánh tài nguyên.


Tôi không muốn xóa các tập tin hoặc loại trừ chúng khỏi sao chép. Tôi muốn chúng không được tạo ra ngay từ đầu.
Anh em họ

2
Nếu bạn sử dụng Finder, bạn không thể ngăn chúng được tạo.
Fyrefly

@Fyrefly, nhưng bạn có thể tạo chúng ở một nơi khác. Xem Asepsis, apple.stackexchange.com/a/136558/55028 . Vì vậy, một giải pháp 'bản địa' cũng có thể khả thi
CousinCocaine

3

Vì bạn sẽ phải vô hiệu hóa việc ghi các tệp ẩn trên mọi máy Mac có thể kết nối với chia sẻ của bạn, một lựa chọn tốt hơn sẽ là dừng việc này ở phần chia sẻ chứ không phải trên máy khách.

Tất cả những gì bạn cần làm là chỉnh sửa cấu hình chia sẻ của mình (ví dụ: trong Linux trong /etc/samba/smb.conf) và thêm tùy chọn sau vào cấu hình chia sẻ của bạn:

veto files = /._*/.DS_Store/ 

Bây giờ không có máy khách Mac nào có thể lưu bất kỳ tệp nào có các mẫu đó vào chia sẻ của bạn.


1
'tập tin phủ quyết' không ngăn tập tin được ghi, nó ngăn người dùng nhìn thấy tập tin. Vui lòng tham khảo samba.org
Justin Catterall

1
samba có tùy chọn "xóa tập tin veto = yes", đồng thời xóa chúng.
rwenz3l

1
Thật không may, delete veto files = yeskhông xóa các tệp chấm đó, nó chỉ đảm bảo rằng bạn có thể xóa một thư mục chứa các tệp bị ẩn khỏi chế độ xem bởi veto filestùy chọn, vì vậy nó không thực hiện được OP sau đó là gì (và đối với những gì tôi cũng đang tìm kiếm một cách vô ích cho).
xmnboy

2

Tôi đã không thử điều này bản thân mình tôi nhận ra OP thích các giải pháp bản địa, nhưng dù sao:

Có một ứng dụng có tên Asepsis hoạt động bằng cách chuyển hướng tạo các tệp đó vào một thư mục đặc biệt, tức là theo cách ngăn chúng xuất hiện.


Đây là một công cụ tốt cho công việc. Thật không may, giải pháp này là một ứng dụng của bên thứ ba và chỉ hoạt động trên các tệp .DS_Store (không phải tệp ._) và chỉ hoạt động cho tất cả các tệp .DS_Store trên mỗi lần gắn kết. Đây là một giải pháp tốt, nhưng không phải tệp gốc và không ._ và không có tiền thưởng. đau đớn
CousinCocaine

1

Không phải là một giải pháp tự nhiên, nó cũng không thực sự ngăn chặn các tệp này được ghi, nhưng nó chủ động đuổi theo chúng & xóa ngay khi chúng được viết

Đầu tư xanh

BlueHarvest tự động xóa các tệp .DS_Store và ._ AppleDouble khỏi các phím USB, thẻ SD, máy nghe nhạc, máy chủ tệp hoặc bất kỳ đĩa Mac nào. BlueHarvest xóa các mục này khi chúng được tạo hoặc sửa đổi để bạn luôn có siêu dữ liệu miễn phí mà không cần phải nhấc ngón tay.

Không liên kết, tôi đã sử dụng nó khá thành công trong vài năm.


0

Theo tôi biết bạn không thể ngăn chặn rằng các tệp này sẽ được tạo. Ít nhất là Finder sẽ tạo ra chúng.

Xóa các tệp này cũng không giúp được gì - vì lần sau khi bạn truy cập vào ổ đĩa và các thư mục của nó trên Mac, Finder sẽ tạo lại chúng.

Tôi ngạc nhiên khi các đồng nghiệp Windows của bạn nhìn thấy các tệp này. Tôi đang làm việc trong nhiều năm nay với máy Mac của mình bằng Mac và Windows - và tôi không bao giờ thấy các tệp này. Cả trên Mac lẫn Windows.

Các tệp này được đánh dấu là "ẩn" theo mặc định và sẽ không xuất hiện nếu bạn cài đặt Windows để ẩn các tệp và thư mục ẩn.


Tôi đã kiểm tra và họ đã vô hiệu hóa 'ẩn các tập tin ẩn'. Nhưng điều này không ngăn cản chúng được tạo ra. Tôi nghĩ rằng có một cách để khắc phục điều này, vì đã có mặc định trong OS 10.5, hãy viết com.apple.desktopservice DSDontWriteNetworkStores -bool true
CousinCocaine

Nếu chúng bị vô hiệu hóa (không được kiểm tra) 'ẩn các tệp ẩn' thì đó chỉ là một cách khác: kích hoạt nó. :-) Và như tôi đã nói: theo như tôi biết thì không có giải pháp "giải pháp OS X gốc" nào. Và: bạn đã liên kết với một câu trả lời từ "support.apple.com" có nội dung: "Vô hiệu hóa việc tạo tệp .DS_Store trên các máy chủ tệp từ xa có thể gây ra hành vi không mong muốn trong Finder". Và: Tôi sẽ không đề xuất cài đặt các ứng dụng hứa hẹn sẽ ngăn chặn nó. Theo tôi biết điều này có thể rất nguy hiểm.
Martin

2
"Điều này có thể rất nguy hiểm" :) Bây giờ tôi thực sự muốn các tập tin này biến mất! Nghiêm túc, các tệp .DS_Store lưu trữ các thuộc tính Finder và các tệp DS_Store bị hỏng thực sự có thể làm những điều kỳ lạ. Tôi không muốn các tệp DS_Store bị hỏng, tôi muốn các tệp DS_Store bị hỏng. Tôi không sợ loại bỏ chúng. Và trở lại câu hỏi ban đầu của tôi: Làm cách nào tôi có thể ngăn OS X tạo các tệp vô hình kỳ lạ này? Và với ý nghĩa đó là tất cả các tệp ._ và các tệp .DS_Store. Không có gì khác.
Anh em họ

Nó sẽ hữu ích cho tôi (và có thể là bạn) nếu bạn xác nhận rằng những người được kích hoạt (và không bị vô hiệu hóa) "ẩn các tệp ẩn". Và tôi có thể hiểu rằng bạn không muốn các tệp này sẽ được tạo và bạn muốn có một giải pháp riêng, nhưng nếu không có giải pháp gốc thì không có ích gì để nói "nhưng tôi muốn nó".
Martin

-1

Tôi đã tìm thấy một cách rất dễ dàng và miễn phí để loại bỏ các tệp ._, đặc biệt là từ fat32 HD bên ngoài.

Khởi chạy OnyX (phần mềm miễn phí). Từ Tiện ích, đi đến AppleDouble, chọn ... thư mục. Đó là nó!!!


1
OP đặc biệt tuyên bố rằng anh ta không muốn có một công cụ dọn dẹp, nhưng một công cụ ngăn chặn các tệp được ghi lại.
Tetsujin
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.