Nonaktifkan penyimpanan file yang tidak terlihat “._” di cfs saya atau penyimpanan jaringan seseorang

34

Saya menggunakan OS X Mavericks dan memiliki beberapa drive penyimpanan perusahaan terpasang (menggunakan seseorang atau cfs). (seseorang: //[email protected]/directory/data). Ketika saya bekerja dengan file di drive atau menyalin file ke drive, beberapa file tersembunyi dibuat. Sebagian besar file-file ini mulai dengan dot-dash ._dan kemudian nama file dari file asli, seperti:

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

Dan sebagian besar waktu, yang terkenal ._.DS_Storedan .DS_Storeada juga.

Di Mac saya, .item titik ini tidak terlihat, tetapi rekan windows saya melihat file-file ini. Bagaimana saya bisa mencegah OS X dari membuat file-file aneh yang tidak terlihat ini?

Di support.apple.com (dan sumber-sumber internet lainnya) Anda dapat menemukan 'default menulis' untuk menonaktifkan pembuatan file .DS_Store di drive jaringan Anda. Tapi ini tidak berfungsi di Mavericks:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Untuk saat ini saya menggunakan oneliner ini, tetapi melakukan rm -rfhal yang salah dalam hal ini.

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

Sunting: Saya tidak ingin menghapus file atau mengecualikannya dari menyalin. Saya ingin mereka tidak diciptakan sejak awal.

Sunting: Saya lebih suka solusi OS X 'asli' daripada aplikasi pihak ketiga.

Sunting: Pertanyaan ini memiliki dua jawaban, satu untuk file ._ dan satu untuk file .DS_Store. Karunia dihargai untuk dot_clean, aplikasi baris perintah asli ini membersihkan semua file ._ Sayangnya tidak menghapus file .DS_Store, ini secara efektif dapat dilakukan dengan Asepsis. Asepsis menyimpan .DS_Stores di lokasi tetap, dan bukan di folder itu sendiri.

SepupuCocaine
sumber
Saya tidak yakin apakah saran ini akan menyelesaikan masalah Anda sehingga meninggalkannya dalam komentar. 1. Coba TinkerTool bresink.com/osx/TinkerTool.html dan gunakan Finder> "Jangan membuat file .DS_Store tersembunyi melalui koneksi jaringan". 2. Coba Panel Preferensi Sistem Rahasia secrets.blacktree.com dan untick Finder> Gunakan .DS_Stores di jaringan.
@ gentlemanhog, saya akan mencoba saran Anda. Tapi saya lebih suka solusi OS X 'asli' daripada aplikasi pihak ketiga.
CousinCocaine
@ gentlemanhog, sayangnya solusi Anda tidak berfungsi di Mavericks.
CousinCocaine

Jawaban:

31

Saya akui, saya tidak memperhatikan bahwa defaults writeperintah itu berhenti bekerja di Mavericks. Namun, ketika saya DO membersihkan jaringan mounts, bukan liner Anda finddan rm, saya menggunakan ini:

dot_clean .

Manfile menjelaskan:

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

Saya tidak menggunakan flag -m, tetapi Anda mungkin merasa terbantu dalam situasi Anda.

-m      Always delete dot underbar files.

Berikut adalah orang lain yang secara aktif mencoba menghentikan file .DS_Store agar tidak dibuat: http://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/ - sepertinya dia tidak ingin file tersebut ada di drive sebanyak dia tidak ingin mereka ada di jaringan!

evilblender
sumber
Ini alat yang tepat untuk pekerjaan itu. Sayangnya solusi ini adalah 'posting' pemasangan dan perlu dijalankan setelah pemasangan terjadi. Asepsis melakukan pekerjaan yang lebih baik ( apple.stackexchange.com/a/136558/55028 ) tetapi merupakan aplikasi pihak ketiga dan hanya bekerja pada file .DS_Store, dan hanya bekerja untuk semua file .DS_Store di setiap mount.
CousinCocaine
12

Baru saja mencoba, dan ini berfungsi di Mavericks (setidaknya untuk menonaktifkan .DS_Store bukan pembagian jaringan):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Anda hanya perlu ingat untuk me-restart Finder juga:

killall Finder
dmuir
sumber
1
Ini tidak berfungsi pada El Capitan, untuk drive Samba. .DS_Storefile masih sedang dibuat
Sébastien
Ini .DS_Storebukan file AppleDouble, mereka hanya file "tak terlihat" normal yang dibuat oleh Finder. Jadi, Anda melihat file-file .DS_Store itu tidak menunjukkan apakah DSDontWriteNetworkStoresberfungsi atau tidak.
Thomas Tempelmann
4

The ._file adalah file AppleDouble yang digunakan untuk menyimpan metadata seperti atribut diperpanjang, ACL, bendera file, dan sumber daya garpu.

Untuk menghapusnya, jalankan:

find . -name ._\* -delete

Anda dapat melihat apakah file memiliki atribut, ACL, atau flag file yang diperluas ls -l@eO. The ._file biasanya dibuat karena file memiliki atribut diperpanjang. Anda dapat menggunakan xattr -cuntuk menghapus atribut yang diperluas atau chmod -Nuntuk menghapus ACL. cp -Xdan rsyncmenyalin file tanpa atribut yang diperluas, ACL, bendera file, atau garpu sumber daya.

Lri
sumber
Saya tidak ingin menghapus file atau mengecualikannya dari menyalin. Saya ingin mereka tidak diciptakan sejak awal.
CousinCocaine
2
Jika Anda menggunakan Finder, Anda tidak dapat mencegahnya dibuat.
Fyrefly
@Fyrefly, tetapi Anda dapat membuatnya di tempat lain. Lihat Asepsis, apple.stackexchange.com/a/136558/55028 . Jadi solusi 'asli' juga dimungkinkan
CousinCocaine
3

Karena Anda harus menonaktifkan penulisan file tersembunyi di setiap Mac yang dapat terhubung ke share Anda, opsi yang lebih baik adalah menghentikan ini pada share dan bukan pada klien.

Yang perlu Anda lakukan adalah mengedit konfigurasi share Anda (misalnya di Linux di /etc/samba/smb.conf) dan tambahkan opsi berikut ke dalam konfigurasi share Anda:

veto files = /._*/.DS_Store/ 

Sekarang tidak ada klien Mac yang dapat menyimpan file apa pun dengan pola-pola itu untuk dibagikan.

cloudranger
sumber
1
'file veto' tidak mencegah file ditulis, itu mencegah pengguna melihat file. Silakan merujuk ke samba.org
Justin Catterall
1
samba memiliki opsi "delete veto files = yes", yang juga menghapusnya.
rwenz3l
1
Sayangnya, delete veto files = yestidak menghapus file-file dot itu, itu hanya memastikan bahwa Anda dapat menghapus folder yang berisi file yang telah disembunyikan dari tampilan oleh veto filesopsi, sehingga tidak mencapai apa yang diinginkan OP (dan untuk apa saya juga mencari dengan sia-sia untuk).
xmnboy
2

Saya belum mencoba ini sendiri, dan saya menyadari OP lebih suka solusi asli, tetapi tetap saja:

Ada aplikasi bernama Asepsis yang berfungsi dengan mengarahkan kembali pembuatan file-file itu ke folder khusus, yaitu dengan cara mencegah mereka agar tidak muncul.

Embun beku
sumber
Ini adalah alat yang bagus untuk pekerjaan itu. Sayangnya solusi ini adalah aplikasi pihak ketiga dan hanya berfungsi pada file .DS_Store (bukan file ._), dan hanya berfungsi untuk semua file .DS_Store di setiap mount. Ini adalah solusi yang baik, tetapi bukan file asli dan non ._ dan karenanya tidak ada hadiah. sry.
CousinCocaine
1

Bukan solusi asli, juga tidak benar - benar mencegah file-file ini ditulis, tetapi itu secara aktif mengejar mereka & menghapus begitu mereka ditulis ...

BlueHarvest

BlueHarvest secara otomatis menghapus file .DS_Store dan ._ AppleDouble dari kunci USB, kartu SD, pemutar musik, server file atau disk non Mac. BlueHarvest menghapus item-item ini saat mereka dibuat atau dimodifikasi sehingga Anda akan selalu bebas metadata tanpa Anda perlu mengangkat jari.

Tidak ada afiliasi, saya baru saja menggunakannya dengan cukup sukses selama beberapa tahun.

Tetsujin
sumber
0

Sejauh yang saya tahu Anda tidak dapat mencegah bahwa file-file ini akan dibuat. Setidaknya Finder akan membuatnya.

Menghapus file-file ini juga tidak akan membantu - karena pada saat Anda mengakses volume dan foldernya di Mac, Finder akan membuatnya lagi.

Saya heran bahwa rekan kerja Windows Anda melihat file-file ini. Saya bekerja selama bertahun-tahun sekarang dengan Mac saya menggunakan Mac dan Windows - dan saya tidak pernah melihat file-file ini. Baik di Mac maupun di Windows.

File-file ini ditandai sebagai "tersembunyi" secara default, dan tidak akan muncul jika Anda mengatur Windows untuk menyembunyikan file dan folder tersembunyi.

Martin
sumber
Saya memeriksa, dan mereka telah menonaktifkan 'sembunyikan file tersembunyi'. Tetapi ini tidak mencegah mereka dari diciptakan. Saya pikir ada cara untuk memperbaikinya, karena ada di OS 10.5 default tulis com.apple.desktopservices DSDontWriteNetworkStores -bool true
CousinCocaine
Jika mereka dinonaktifkan (tidak dicentang) 'sembunyikan file tersembunyi' maka itu hanya cara lain: aktifkan. :-) Dan seperti yang saya katakan: sejauh yang saya tahu tidak ada solusi "solusi OS X" asli. Dan: Anda ditautkan ke jawaban dari "support.apple.com" yang mengatakan: "Menonaktifkan pembuatan file .DS_Store di server file jarak jauh dapat menyebabkan perilaku yang tidak terduga di Finder". Dan: Saya tidak akan menyarankan untuk menginstal aplikasi yang menjanjikan untuk mencegahnya. Sejauh yang saya tahu ini bisa sangat berbahaya.
Martin
2
"ini bisa sangat berbahaya" :) Sekarang saya benar-benar ingin file-file ini hilang! Serius, file .DS_Store menyimpan properti Finder, dan file DS_Store yang rusak memang dapat melakukan hal-hal aneh. Saya tidak ingin file DS_Store rusak, Saya ingin TIDAK file DS_Store. Saya tidak takut menghapusnya. Dan kembali ke pertanyaan awal saya: Bagaimana saya bisa mencegah OS X dari membuat file yang tidak terlihat aneh ini? Dan dengan maksud saya semua file ._ dan .DS_Store file. Tidak ada lagi.
CousinCocaine
Akan sangat membantu bagi saya (dan mungkin Anda) jika Anda mengonfirmasi bahwa orang yang diaktifkan (dan tidak dinonaktifkan) "sembunyikan file yang tersembunyi". Dan saya dapat mengerti bahwa Anda tidak ingin file-file ini akan dibuat dan Anda menginginkan solusi asli, tetapi jika tidak ada solusi asli maka tidak ada gunanya mengatakan "tetapi saya menginginkannya".
Martin
-1

Saya menemukan cara yang sangat mudah dan gratis untuk menyingkirkan file ._, terutama dari HD fat32 eksternal.

Luncurkan OnyX (perangkat lunak gratis). Dari Utilitas, buka AppleDouble, pilih ... folder. Itu dia!!!

Mariano Rocchi
sumber
1
OP secara khusus menyatakan dia tidak ingin alat pembersihan, tetapi yang mencegah file ditulis sama sekali.
Tetsujin