Wyłącz przechowywanie niewidzialnych plików „._” na moim cfs lub smb sieciowym

34

Używam OS X Mavericks i mam zamontowane niektóre firmowe dyski pamięci masowej (używając smb lub cfs). (smb: //[email protected]/directory/data). Kiedy pracuję z plikami na dysku lub kopiuję pliki na dysk, tworzone są niektóre ukryte pliki. Większość tych plików zaczyna się od kropki, ._a następnie nazwa oryginalnego pliku, na przykład:

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

I przez większość czasu, słynny ._.DS_Storei .DS_Storeteż tam są.

Na moim komputerze Mac te .kropki są niewidoczne, ale moi koledzy z systemu Windows widzą te pliki. Jak mogę uniemożliwić systemowi OS X tworzenie tych dziwnych, niewidocznych plików?

Na stronie support.apple.com (i innych źródłach internetowych) można znaleźć „domyślny zapis”, aby wyłączyć tworzenie plików .DS_Store na dyskach sieciowych. Ale to nie działa w Mavericks:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Na razie używam tego onelinera, ale robienie rm -rfw tym przypadku wydaje się złe.

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

Edycja: Nie chcę usuwać plików ani wykluczać ich z kopiowania. Chcę, żeby nie powstawały.

Edycja: Wolę „natywne” rozwiązanie OS X niż aplikacje innych firm.

Edycja: To pytanie ma dwie odpowiedzi, jedną dla plików ._ i jedną dla plików .DS_Store. Nagroda jest nagradzana dot_clean, ta natywna aplikacja wiersza polecenia czyści wszystkie pliki ._. Niestety nie usuwa plików .DS_Store, można to skutecznie wykonać przy pomocy Asepsis. Asepsis przechowuje .DS_Stores w stałej lokalizacji, a nie w samym folderze.

Kuzyn Kokaina
źródło
Nie jestem pewien, czy te sugestie rozwiążą Twój problem, dlatego zostaw je w komentarzu. 1. Wypróbuj TinkerTool bresink.com/osx/TinkerTool.html i użyj Findera> „Nie twórz ukrytych plików .DS_Store przez połączenie sieciowe”. 2. Wypróbuj panel Preferencje systemowe Secrets secrets.blacktree.com i odznacz Finder> Użyj .DS_Stores w sieci.
@gentlemanhog, wypróbuję twoje sugestie. Ale wolę „natywne” rozwiązanie OS X niż aplikacje innych firm.
CousinCocaine
@gentlemanhog, niestety twoje rozwiązania nie działają w Mavericks.
CousinCocaine

Odpowiedzi:

31

Przyznam, że nie zauważyłem, że defaults writepolecenie przestało działać w Mavericks. Jednak, gdy wykonam czyszczenie gniazd sieciowych, zamiast jednego linera findi rmużywam tego:

dot_clean .

Manfile wyjaśnia:

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

Nie używam flagi -m, ale może okazać się pomocna w twojej sytuacji.

-m      Always delete dot underbar files.

Oto inna osoba aktywnie próbująca powstrzymać tworzenie plików .DS_Store: http://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/ - wygląda na to, że nie chce ich na dyskach tak bardzo, jak on nie chce ich w sieci!

zło blender
źródło
To właściwe narzędzie do pracy. Niestety to rozwiązanie jest montowane „po” i musi zostać uruchomione po jego zamontowaniu. Asepsa działa lepiej ( apple.stackexchange.com/a/136558/55028 ), ale jest aplikacją innej firmy i działa tylko na plikach .DS_Store i działa tylko na wszystkich plikach .DS_Store na każdym montażu.
CousinCocaine
12

Właśnie wypróbowałem i działa to w Mavericks (przynajmniej do wyłączenia .DS_Store nie udziałów sieciowych):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Musisz tylko pamiętać o ponownym uruchomieniu Findera:

killall Finder
dmuir
źródło
1
To nie działa na El Capitan, na dysku Samba. .DS_Storepliki są wciąż tworzone
Sébastien
To .DS_Storenie są pliki AppleDouble, to tylko „normalne” niewidzialne pliki tworzone przez Findera. Tak więc widzenie tych plików .DS_Store nie wskazuje na to, czy DSDontWriteNetworkStoresdziała, czy nie.
Thomas Tempelmann,
4

Te ._pliki są AppleDouble pliki, które są używane do przechowywania metadanych, jak rozszerzonych atrybutów ACL, flagi plików i widelce zasobów.

Aby je usunąć, uruchom:

find . -name ._\* -delete

Możesz sprawdzić, czy pliki mają rozszerzone atrybuty, listy ACL lub flagi plików za pomocą ls -l@eO. Te ._pliki są zwykle tworzone, ponieważ pliki mają rozszerzonych atrybutów. Możesz użyć xattr -cdo usunięcia rozszerzonych atrybutów lub chmod -Ndo usunięcia list ACL. cp -Xi rsynckopiuj pliki bez rozszerzonych atrybutów, list ACL, flag plików lub widelców zasobów.

Lri
źródło
Nie chcę usuwać plików ani wykluczać ich z kopiowania. Chcę, żeby nie powstawały.
CousinCocaine
2
Jeśli używasz Findera, nie możesz uniemożliwić ich utworzenia.
Fyrefly,
@Fyrefly, ale możesz je utworzyć gdzie indziej. Patrz Asepsis , apple.stackexchange.com/a/136558/55028 . Możliwe jest również rozwiązanie „rodzime”
CousinCocaine
3

Ponieważ musiałbyś wyłączyć zapisywanie ukrytych plików na każdym komputerze Mac, który mógłby połączyć się z twoim udziałem, lepszym rozwiązaniem byłoby zatrzymanie tego na udziale, a nie na klientach.

Wszystko, co musisz zrobić, to edytować konfigurację udostępniania (na przykład w systemie Linux w /etc/samba/smb.conf) i dodać następującą opcję do konfiguracji udostępniania:

veto files = /._*/.DS_Store/ 

Teraz żaden klient Mac nie może zapisywać plików z tymi wzorami do Twojego udziału.

Cloudranger
źródło
1
„Pliki wetujące” nie zapobiegają zapisywaniu plików, uniemożliwiają użytkownikom ich przeglądanie . Proszę odnieść się do samba.org
Justin Catterall
1
Samba ma jednak opcję „usuń pliki veto = tak”, która również je usuwa.
rwenz3l
1
Niestety, delete veto files = yesnie usuwa tych plików kropek, po prostu zapewnia, że ​​możesz usunąć folder, który zawiera pliki, które zostały ukryte przed veto filesopcją, więc nie osiąga tego, czego szukał OP (i tego, czego próżno szukam dla).
xmnboy
2

Sam tego nie próbowałem i zdaję sobie sprawę, że OP woli rozwiązania natywne, ale mimo to:

Istnieje aplikacja o nazwie Asepsis, która działa poprzez przekierowanie tworzenia tych plików do specjalnego folderu, tj. W sposób uniemożliwiający ich pojawienie się.

Mróz
źródło
To dobre narzędzie do pracy. Niestety to rozwiązanie jest aplikacją innej firmy i działa tylko na plikach .DS_Store (nie na plikach ._) i działa tylko na wszystkich plikach .DS_Store na każdym montażu. To dobre rozwiązanie, ale nie rodzime i inne niż pliki ._ i dlatego nie ma nagrody. płacz
CousinCocaine
1

Nie rodzimy rozwiązanie, ani nie faktycznie zapobiec pliki te są zapisywane, ale nie aktywnie gonić za nimi i usuwać tak szybko, jak są one napisane ...

BlueHarvest

BlueHarvest automatycznie usuwa pliki .DS_Store i ._ AppleDouble z kluczy USB, kart SD, odtwarzaczy muzycznych, serwerów plików lub dowolnego dysku innego niż Mac. BlueHarvest usuwa te elementy podczas ich tworzenia lub modyfikacji, dzięki czemu zawsze będziesz mieć wolne od metadanych, bez konieczności kiwnięcia palcem.

Brak przynależności, korzystam z niego całkiem skutecznie przez kilka lat.

Tetsujin
źródło
0

O ile wiem, nie można zapobiec tworzeniu tych plików. Stworzy je przynajmniej Finder.

Usunięcie tych plików też nie pomoże - ponieważ następnym razem, gdy uzyskasz dostęp do woluminu i jego folderów na komputerze Mac, Finder utworzy je ponownie.

Dziwi mnie, że twoi koledzy z Windows widzą te pliki. Pracuję od wielu lat na komputerze Mac z systemem Mac i Windows - i nigdy nie widzę tych plików. Ani na Macu, ani na Windowsie.

Pliki te są domyślnie oznaczone jako „ukryte” i nie pojawią się, jeśli system Windows jest ustawiony do ukrywania ukrytych plików i folderów.

Jaskółka oknówka
źródło
Sprawdziłem, a oni wyłączyli opcję „ukryj ukryte pliki”. Ale to nie przeszkadza w ich tworzeniu. Myślę, że jest sposób, aby to naprawić, ponieważ w systemie Windows 10.5 domyślnie napisano com.apple.desktopservices DSDontWriteNetworkStores -bool true
CousinCocaine
Jeśli wyłączyli (nie zaznaczyli) „ukryj ukryte pliki”, to jest po prostu inny sposób: włącz. :-) I tak jak powiedziałem: o ile wiem, nie ma „natywnego rozwiązania OS X”. Oraz: link do odpowiedzi z „support.apple.com”, która mówi: „Wyłączenie tworzenia plików .DS_Store na zdalnych serwerach plików może spowodować nieoczekiwane zachowanie w Finderze”. I: Nie sugerowałbym instalowania aplikacji, które mogą temu zapobiec. O ile wiem, może to być bardzo niebezpieczne.
Martin
2
„to może być bardzo niebezpieczne” :) Teraz naprawdę chcę, żeby te pliki zniknęły! Poważnie, pliki .DS_Store przechowują właściwości Findera, a uszkodzone pliki DS_Store mogą rzeczywiście robić dziwne rzeczy. Nie chcę uszkodzonych plików DS_Store, nie chcę żadnych plików DS_Store. Nie boję się ich usunąć. I wróć do mojego pierwotnego pytania: Jak mogę zapobiec tworzeniu przez OS X tych dziwnych niewidzialnych plików? I przez to mam na myśli wszystkie pliki ._ i .DS_Store. Nic więcej.
CousinCocaine
Byłoby pomocne dla mnie (i może być ciebie), gdybyś potwierdził, że osoby włączone (a nie wyłączone) „ukrywają ukryte pliki”. Rozumiem, że nie chcesz, aby te pliki zostały utworzone i że chcesz mieć rozwiązanie natywne, ale jeśli nie ma rozwiązania natywnego, nie można powiedzieć „ale chcę”.
Martin
-1

Znalazłem bardzo łatwy i darmowy sposób na pozbycie się plików ._, zwłaszcza z zewnętrznego fat32 HD.

Uruchom OnyX (darmowe oprogramowanie). W Narzędziach przejdź do AppleDouble, wybierz ... folder. To jest to!!!

Mariano Rocchi
źródło
1
OP dość wyraźnie stwierdza, że ​​nie chce narzędzia do czyszczenia, ale takiego, które w ogóle uniemożliwia zapisywanie plików.
Tetsujin