Tại sao các dấu gạch dưới ._ được tạo và làm cách nào để tránh chúng?


156

Tôi đang sử dụng các hệ điều hành khác nhau trên các máy khác nhau trên các vị trí khác nhau. Tôi đang sử dụng đĩa flash USB để giữ các tệp của mình (mã nguồn, v.v.).

Tôi mới sử dụng Mac OS X và bây giờ tôi nhận ra có rất nhiều tệp được tạo với ._tiền tố dấu gạch dưới .

Câu hỏi

Tại sao ._các tập tin được tạo ra?

Mục đích của họ là gì?

Làm thế nào tôi có thể tránh chúng?


3
Tôi cũng không thích họ nhưng tôi đã học được cách chung sống với họ một cách hòa bình.
boehj

1
Nếu ổ đĩa flash được định dạng ở định dạng HFS +, điều đó sẽ ngăn chặn việc tạo ._tệp, nhưng tôi không biết tùy chọn nào tồn tại trên các hệ điều hành khác không xác định của bạn để đọc các khối HFS +.
Daniel


Không lý tưởng, nhưng ls --ignore="._*"như một bí danh hoặc keybinding đi một chặng đường dài.
Sridhar Sarnobat

Câu trả lời:


107

Bạn không thể tránh chúng (nhưng hãy xem câu trả lời dot_clean của Saeid Zebardast - chúng có thể bị xóa khỏi thư mục nếu đó là những gì bạn cần). Chúng được tạo để lưu trữ thông tin tệp có thể đi vào thuộc tính mở rộng trên các khối HFS + (bản địa của Apple) hoặc Unix / UFS; trong Mac OS trước đây, đây sẽ là một nhánh tài nguyên. Các thao tác tệp tìm kiếm sẽ tự động tạo chúng để lưu trữ thông tin biểu tượng, cộng với Time Machine lưu trữ một số thông tin trong đó để nếu bạn sao chép tệp được sao lưu qua TM, nó cũng sẽ được sao chép thông tin đó.

(Điều này không có gì mới; tôi đã nhận thấy rằng XP và sau đó cũng để lại nhiều nhóm khác nhau, mặc dù không nhiều như vậy.)


49
Tôi đồng ý, "turd" là một mô tả chính xác :)
Drahcir

2
Tôi nhận thấy rằng máy Mac của tôi đang rời khỏi máy chủ trên máy chủ samba linux của tôi khi tôi sử dụng nhãn màu (sử dụng Path Finder 7). Có một tệp ._ <coloreditem> cho mỗi mục màu.
Jonathan Komar

5
Chúng tôi có tình huống tương tự trong máy chủ tệp samba linux của chúng tôi tại nơi làm việc. Vì chúng tôi không cần siêu dữ liệu màu cho các tệp, chúng tôi đã sử dụng veto files = /._*/delete veto filescác tùy chọn trong chúng tôi smb.confđể ngăn việc tạo các tệp đó. Thay vào đó, chúng tôi để lại .DS_STOREcác tệp như vậy, vì chúng rất hữu ích để thiết lập sắp xếp tệp và chỉ có một trong số chúng cho mỗi thư mục.
gerlos

5
Ít nhất trên Windows bạn có thể tắt cái này!
totymedli

7
Được khuyến khích sử dụng "turds" để mô tả điều này.
George P

60

Bạn có thể sử dụng lệnh dot_clean để xóa hoặc hợp nhất các tệp ._:

dot_clean PATH_OF_FOLDER_OR_DRIVE

Nếu bạn di chuyển tệp sang linux hoặc có Git Bashtrên PC và có quyền truy cập vào findlệnh, bạn cũng có thể thực hiện việc này:

find . -type f -name '._*' -delete

Và họ đã biến mất!


3
Các câu trả lời khác không thực sự trả lời "Làm thế nào tôi có thể tránh chúng?" phần. Điều này không. Cảm ơn!
Ninja Fist

11
From man dot_clean: For each dir, dot_clean recursively merges all ._* files with their corresponding native files according to the rules specified with the given arguments. By default, if there is an attribute on the native file that is also present in the ._ file, the most recent attribute will be used.Lệnh này không chỉ xóa các tệp chấm nhất định, nó có thể ghi đè lên các thuộc tính trước đó / gốc cho mỗi thư mục. Sử dụng cẩn thận.
William Isted

Không chắc nó có được đề cập ở đây hay không nhưng xin hãy cẩn thận trong việc loại bỏ số lượng lớn ._tệp. Họ có thể xóa biểu tượng tệp / thư mục, nhận xét, nhãn, v.v ... Hãy chắc chắn rằng bất cứ nơi nào bạn gỡ bỏ chúng, đây không phải là vấn đề
leetbacoon

26

Mục đích của các tệp .DS_Store và ._

http://diigo.com/0qiwp cho chế độ xem chú thích của http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html nơi Matt Deatherage ( một kỹ sư cũ của Apple ) đưa ra lời giải thích. Đồng thời ghi chú »Về nguồn gốc của .DS_Store  (2006-10-01).

Vì tôi đã thấy mất dữ liệu người dùng (nội dung tài liệu) trong đó các ._đối tác bị ngăn chặn hoặc mất, tôi đồng ý rằng đó là:

  • không thể chấp nhận để có những thứ "tan biến vào ether".

Mục đích của tập tin ._

Ngoài các mục đích được nêu trong câu trả lời được chấp nhận của geekizard , đây là một vài ví dụ về cách ứng dụng của Apple và bên thứ ba sử dụng hoặc yêu cầu ._ trong một số tình huống.


Tập tin kinh doanh trong một bản sao của Finder

Xem câu trả lời của tôi cho một câu hỏi trên Stack Overflow.


Neo trình sử dụng mã không dùng nữa

Mã loại HFS NO%Fkhông có mã người tạo là:

  • sử dụng cẩn thận, chỉ khi thích hợp.

Ví dụ NeoVener 1

Bản vá Neo Neo 3.2.1 Patch 5 lưu vào JHFS +:

[macbookpro08-centrim:~] gjp22% xattr -l /Users/gjp22/Desktop/product\ of\ NeoOffice\ 3.2.1\ Patch\ 5.docx 
com.apple.FinderInfo:
00000000  4E 4F 25 46 00 00 00 00 00 00 00 00 00 00 00 00  |NO%F............|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020

Ví dụ NeoVener 2

NeoScript 3.2.1 Patch 5 lưu vào ổ flash USB với MS-DOS FAT32, được BlueHarvest dọn dẹp:

2012-05-12 06:42:08.349 BlueHarvest[31146]: Deleted ._product of NeoOffice 3.2.1 Patch 5.docx in /Volumes/FAT32/example.

Ví dụ Neo trình 3

NeoScript 3.2.1 Patch 5 lưu vào một ổ đĩa được gắn bởi OS X với loại hệ thống tệp webdav, không phải SharePoint, làm sạch bởi BlueHarvest:

[macbookpro08-centrim:~] gjp22% mount | grep dav
https://www.box.net/dav/ on /Volumes/dav (webdav, nodev, noexec, nosuid, mounted by gjp22)
[macbookpro08-centrim:~] gjp22% xattr -l /Volumes/dav/product\ of\ NeoOffice\ 3.2.1\ Patch\ 5.docx 
[macbookpro08-centrim:~] gjp22% 
  • việc lưu bởi NeoScript vào webdavhệ thống tệp không liên quan đến một thuộc tính mở rộng
  • BlueHarvest không bắt buộc.

Gợi ý : nơi Microsoft Office không webdavthể lưu vào Microsoft SharePoint (xem bên dưới), NeoOffice thành công.


Microsoft sử dụng mã không dùng nữa

Phiên bản mới nhất của Văn phòng đòi hỏi một mã loại HFSđang tạo HFS khi một định dạng như Microsoft Word ( .docx) được chọn. Vì vậy - dường như khi lưu vào hệ thống tệp không hỗ trợ các giá trị đó trong com.apple.FinderInfothuộc tính mở rộng:

  • Microsoft Office không thể lưu đáng tin cậy mà không tạo nhiều ._tệp.

Microsoft ví dụ 1

Word 2011 14.2.1 lưu vào một ổ đĩa được gắn bởi OS X với loại hệ thống tệp webdav, không phải SharePoint, làm sạch bởi BlueHarvest:

May 11 18:32:49 macbookpro08 BlueHarvest[14649]: BlueHarvest started.
May 11 18:38:37 macbookpro08 BlueHarvest[14649]: Deleted ._Word Work File D_1.tmp in /Volumes/dav.
May 11 18:39:57 macbookpro08 BlueHarvest[14649]: Deleted ._Hello world, this is Microsoft.docx in /Volumes/dav.
May 11 18:42:28 macbookpro08 BlueHarvest[14649]: Deleted ._Hello world, this is Microsoft.docx in /Volumes/dav.

Microsoft ví dụ 2

Tiết kiệm Word 2011 14.2.2 (120421) example.docxtrong cùng một môi trường:

2012-05-12 08:01:07.692 BlueHarvest[41131]: Deleted ._Word Work File D_769960778.tmp in /Volumes/dav.

Microsoft ví dụ 3

Word 2011 14.2.2 (120421) lưu another.docxtrong cùng một môi trường, thoát sau đó mở lại, chỉnh sửa rồi lưu, chỉnh sửa rồi đóng và lưu:

2012-05-12 08:15:04.252 BlueHarvest[41131]: Deleted ._Word Work File D_.tmp in /Volumes/dav.
2012-05-12 08:18:48.735 BlueHarvest[41131]: Deleted ._another.docx in /Volumes/dav.
2012-05-12 08:21:12.658 BlueHarvest[41131]: Deleted ._Word Work File D_2.tmp in /Volumes/dav.

Gợi ý : Microsoft Office 2011 không lưu vào Microsoft SharePoint khi loại hệ thống tệp là webdavdo SharePoint không hỗ trợ tên tệp bắt đầu bằng dấu chấm .( dấu chấm ). Xem Hỏi các câu trả lời khác nhau để Có thể gắn SharePoint dưới dạng tập trong 10.6 không?


Mã loại và người tạo: nền, Nhà phát triển Apple

Apple bắt đầu khuyến khích các nhà phát triển bên thứ ba tránh xa mã loại và mã người tạo hơn một thập kỷ trước. Trong Phụ lục B của Hướng dẫn lập trình hệ thống tệp, các loại tệp và mã trình tạo khuyên rằng các mã là:

thường không được dùng nữa, bạn có thể thấy chúng trong các tệp và ứng dụng cũ và ở một số nơi trong hệ thống.



10

Các tệp này được tạo bởi hệ điều hành để tăng tốc tìm kiếm, lưu trữ siêu dữ liệu (dữ liệu được sử dụng bởi HĐH) về tùy chọn thư mục, v.v. Cả Windows và OS X đều có các loại tệp này. Sau đây, là một mô tả về các tệp này được lấy từ http://annoying-file-be-gone.snack.ws/faq.html :

.DS_Store- Tên tệp trong hệ điều hành Apple OS X để lưu trữ các thuộc tính tùy chỉnh của thư mục, chẳng hạn như vị trí của các biểu tượng hoặc lựa chọn hình nền (Đọc thêm )

.Spotlight-V100- Tệp này chứa thông tin để tăng tốc tính năng 'Tìm kiếm Spotlight'. Xóa sẽ chỉ đơn giản là buộc thông tin này được lập chỉ mục lại nếu bạn thực hiện Tìm kiếm Spotlight khác cho một mục trong thư mục này.

.apDisk - Tệp này chứa thông tin về các thư mục được chia sẻ và có thể được gỡ bỏ một cách an toàn vì nó sẽ được tạo lại tự động nếu Apple cần.

.VolumeIcon.icns- Tập tin này được sử dụng để lưu trữ biểu tượng của âm lượng (thiết bị USB) nếu âm lượng sử dụng biểu tượng tùy chỉnh chứ không phải biểu tượng mặc định. Nếu bạn muốn thiết bị tiếp tục sử dụng biểu tượng mặc định này hoặc nếu thư mục / thiết bị bạn muốn dọn dẹp có chứa một ứng dụng, bạn có thể muốn giữ tệp này trong hệ thống của mình. Là một lưu ý phụ, nếu bạn muốn tạo một biểu tượng tùy chỉnh cho thiết bị của mình, bạn có thể tạo / tải xuống một .icnstệp và đổi tên nó .VolumeIcon.icnsvà đặt vào thư mục / thiết bị của bạn.

.fseventsd- Tệp này được sử dụng làm bộ đệm cho trình nền Sự kiện Hệ thống Tệp. Nếu bạn đang sử dụng chương trình giám sát thư mục / thiết bị này, tệp này có thể được sử dụng để lưu trữ dữ liệu tạm thời.

.Trash& .Trashes- Các thư mục này được sử dụng để giữ các mục đã xóa giống như biểu tượng 'Thùng rác' từ thanh công cụ. Nếu bạn không cần tính năng này trên thư mục / thiết bị của mình, bạn có thể xóa thư mục này để tiết kiệm dung lượng.

.TemporaryItems- Tệp này được HĐH sử dụng để giữ dữ liệu tạm thời khi các tệp đang được sao chép / di chuyển / nối thêm. Nếu bạn đang chạy bất kỳ chương trình nào đang truy cập vào thư mục / thiết bị bạn muốn dọn dẹp và bạn không sao chép hoặc di chuyển bất kỳ tệp nào, thì tệp này chỉ có thể giữ dữ liệu cũ để lưu vào bộ đệm.


7

Để giảm thiểu sự hiện diện của các tệp gạch dưới dấu chấm trên các ổ đĩa không được định dạng HFS +, bạn có thể sử dụng ngăn tùy chọn BlueHarvest .


3
BlueHarvest là một sản phẩm tuyệt vời nhưng một số đánh giá của bên thứ ba là sai lệch. Kết quả kiểm tra cho thấy việc tạo ra không bị ngăn chặn; sáng tạo đó được cho phép và theo sở thích của người dùng, BlueHarvest có thể xóa sạch một số thứ được tạo.
Graham Perrin

5

vấn đề là như @geekizard nói và rất khó tránh nếu bạn sử dụng các công cụ tệp của Apple.

Tuy nhiên, nếu bạn chỉ sử dụng các công cụ dòng lệnh và một số công cụ của bên thứ 3 và không bao giờ ghi vào USB bằng Finder thì chúng sẽ không được tạo.


Hành vi không giới hạn ở phần mềm Apple. Ví dụ: Microsoft Office 2011 yêu cầu ._các tệp khi lưu vào các hệ thống tệp không hỗ trợ mã loại HFS và mã người tạo.
Graham Perrin

5
@GrahamPerrin - Ý tôi là các công cụ tệp của Apple để sao chép, v.v. Nếu bạn sử dụng các công cụ chỉ sử dụng các thư viện tệp BSD thì không có tệp _.
dùng151019

3

Sử dụng find . -name "._*" -type fđể tập tin các tập tin từ đường dẫn cục bộ và sử dụng find . -name "._*" -type f -deleteđể xóa tất cả các tập tin.


Chào mừng bạn đến hỏi khác nhau! Mặc dù câu trả lời của bạn cho thấy cách xóa các tệp, nhưng nó không trả lời Tại sao, Điều gì và Cách tránh trong OP.
bjbk

@bjbk Câu trả lời này cho biết cách xóa các tệp, giống như câu trả lời được đánh giá cao của Saeid Zebardast. Tôi đồng ý không ai thực sự giải quyết làm thế nào để tránh chúng, cũng như tại sao chúng xuất hiện.
LarsH

1

Thật đơn giản, NTFS (Windows hiện tại) FAT32 (Windows cũ) có cấu trúc dữ liệu rất cụ thể cho những thứ như quyền, chương trình nào được chỉ định để mở tệp này, ngày tạo, ngày sửa đổi, thẻ, nhận xét tệp, biểu tượng và khác metadata. Bạn cũng sẽ nhận thấy rằng các thuộc tính tương tự sẽ không hiển thị trong HĐH khác. (Ngày tạo IE có thể nói là vào 1/1/1990 và các siêu dữ liệu khác không thể truy cập được từ HĐH khác. hoặc ._ các tệp cùng với các tệp lưu trữ DS sẽ hiển thị. Nó hiển thị thỏa thuận của HĐH với yếu tố không tương thích của các yếu tố khác nhau ở trên không phù hợp. Vì vậy, bạn có thể muốn giữ các tệp này xung quanh nếu bạn chuyển đổi qua lại giữa HĐH ' s để sử dụng các tập tin này. Nếu bạn chỉ sử dụng một HĐH hoặc hệ điều hành khác, đảm bảo bạn có phương tiện (ổ cứng, thẻ sd, v.v.) được định dạng đúng hoặc có trình điều khiển cho phép HĐH của bạn ghi vào định dạng ổ đĩa không có nguồn gốc từ HĐH. (Chúng có sẵn cho cả OSX để cho phép nó ghi các tệp NTFS & FAT32 bằng các thuộc tính gốc và cho Windows 7 & 8 để ghi vào các ổ HFS + & EXFat (linux) bằng các thuộc tính gốc.) Chúng không miễn phí, nhưng nếu bạn làm rất nhiều việc qua lại nó sẽ cắt bỏ dữ liệu trùng lặp dư thừa làm xáo trộn ổ đĩa.


-1

Bạn có thể xóa chúng thông qua FileZilla hoặc trình quản lý tệp tương tự.


Không chắc chắn lý do tại sao điều này bị hạ cấp vì hầu hết các câu trả lời được nâng cấp thậm chí không thực sự đưa ra giải pháp. Theo ý kiến ​​của tôi, đây là giải pháp đơn giản nhất ... Vì ._ và .DS_Store là các tệp liên quan đến Finder, giải pháp rõ ràng là tránh công cụ tìm. Cá nhân tôi thích sử dụng Transmit, nhưng Filezilla là một sự thay thế miễn phí tuyệt vời.
Bryan Willis

3
Tôi đã không downvote nhưng đó là một gợi ý không mong muốn và bỏ lỡ ý định của câu hỏi yêu cầu phòng ngừa hơn là chữa bệnh. Ai muốn dành một nửa thời gian để xóa các tệp này tiếp tục được tạo? Q: "Tôi phải làm gì về vấn đề xả rác của thành phố?" A: "Nhặt nó lên và bỏ vào thùng, duh."
Sridhar Sarnobat

-1

Tôi đã được sử dụng phương pháp sau đây cho dễ dàng. * loại bỏ tập tin tiền tố trên ổ đĩa flash: Xóa ổ đĩa flash khỏi máy tính Apple, chèn vào máy Windows, tìm kiếm ổ đĩa flash cho ". *. *", sau đó khi tìm kiếm hiển thị các tệp có tiền tố ._, hãy xóa chúng. Tôi không bao giờ xóa các tệp .Trash hoặc .DS Store. Cho đến nay không có vấn đề. Tôi hy vọng tôi không gây ra vấn đề trong tương lai cho chính mình.


1
Xóa thủ công? Quyền sở hữu máy tính Windows khi bạn là người dùng Mac? Tôi biết bạn chỉ đang ghi lại những gì phù hợp với bạn nhưng tôi không thể tưởng tượng được ai theo phương pháp của bạn.
Sridhar Sarnobat

-1

Có, một số người trong chúng ta có sử dụng cho cả máy Mac và máy windows và tôi đã từng sử dụng phương pháp đó. Và nếu bạn có một USB với một loạt các .jpg mà bạn muốn phát dưới dạng trình chiếu, bạn phải loại bỏ các tệp ._ phiền phức đó để làm điều đó. Sau nhiều lần tìm kiếm, tôi đã tìm ra cách sử dụng máy mac của mình để xóa các tệp ._:

sử dụng thiết bị đầu cuối:

  • ls -a sẽ liệt kê tất cả các tệp, bao gồm cả tệp bắt đầu bằng ._
  • để xóa chỉ một tệp khỏi thư mục: rm -rf ._whateveryourfilenameis.jpg
  • để loại bỏ tất cả các ._tập tin:rm -rf ._*
  • để loại bỏ các thư mục không mong muốn bao gồm .Trashes :rm -r .Trashes*

Làm sạch USB của tôi ngay để sử dụng làm đầu vào TV


-2

Hãy cẩn thận khi xóa ._ liên quan đến Git, Visual Studio và Xcode! Tôi có một ứng dụng có rất nhiều .mov và hình ảnh và các tệp "._" này hiển thị để được cam kết. Tôi đã xóa chúng thông qua các thay đổi của Visual Studio Team Explorer và bằng cách nào đó, thư mục dự án đã tăng từ khoảng 500 MB đến 40 GB mà không thêm tệp ... vẫn không chắc chắn điều gì đã xảy ra, nhưng tôi đoán nó có liên quan đến việc xóa các tệp đó để mọi cam kết được lưu vào bộ nhớ cache mỗi .mov và hình ảnh nhiều lần trước khi tôi bắt kịp. Tôi thấy mỗi .mov và .png lặp lại 20-30 lần khi trong Finder> Tất cả các tệp.

Chỉ cần thêm "._ *" vào tệp .gitignore của bạn và chúng sẽ không hiển thị dưới dạng tệp đã thay đổi khi sử dụng TFS cho dự án Xcode iOS của bạn.

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.