C'è un modo per impedire che quei fastidiosi file .DS_Store vengano mai creati?


14

Esiste un modo (ad es. Un hack binario nel Finder) per impedire che crei .DS-Stores su volumi LOCAL?

Sto usando Leopard, quindi questi non funzionano:

Inoltre, BlueHarvest rallenta il mio computer.


1
Vedi: Impedisci a MacOS di creare file. * E ._ * - qualsiasi motivo specifico per cui non li desideri?
slhck,

@slhck: blueharvest funziona, ma rallenta il mio computer. Sto cercando qualcosa di simile a questo
kinokijuf

Ho dimenticato che TotalFinder funziona solo su ≥ 10.6, mi dispiace.
slhck,

Questa domanda sarebbe troppo localizzata se fosse specifica per Leopard e precedenti. Risposte potrebbe solo menzionare l'attuale versione supportata più bassa o più alta ove applicabile.
Lri,

Risposte:


3

Soluzioni di terze parti

Nella mia esperienza, BlueHarvest è il migliore della classe. Tecnicamente, non è una risposta alla domanda; può rimuovere ma non impedire i .DS_Storefile.

Se BlueHarvest è efficace ma non si adatta al tuo caso d'uso, diventa difficile dare una risposta accettabile alla tua domanda.

Se non disponi di una soluzione di terze parti accettabile, devi utilizzare ciò che è integrato in Leopard ...

Senza una soluzione di terze parti: limitare l'uso di Finder

Evitando le visualizzazioni che non si desidera salvare, è possibile impedire la creazione di .DS_Storefile.

La maggior parte degli utenti troverà difficile trattenersi in questo modo, ma è una vera risposta entro i limiti della domanda.

http://diigo.com/0qiwp per una vista annotata di http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html in cui Matt Deatherage (un ex ingegnere di Apple) spiega .DS_Storee altro tipi di file.


6

Non ho trovato alcun modo per impedire che vengano creati, ma puoi eliminarli automaticamente con uno script:

#!/bin/sh

find ~ -name .DS_Store -exec /bin/rm -f -- {} \;

exit 0

Esegui ogni X minuti tramite launchdo cron. Non ci vuole quasi tempo per correre sul mio iMac di diversi anni. Cercherà solo $ HOME (~) ma è lì che sarà la maggior parte di essi. Cambia ~ in / se desideri eliminarli sull'intera unità, ma ciò richiederà molto più tempo per essere eseguito, quindi regola la frequenza di conseguenza.


1
Puoi anche usare find ~ -name .DS_Store -delete. E non dimenticare la -namebandiera - senza di essa il comando si applicherebbe a tutti i file in ~e ./.DS_Store.
Lri,

1
So che posso usare uno script, ma la tua risposta non risponde alla sua domanda.
Kinokijuf,

La risposta alla domanda è "no". Non esiste un modo per impedirne la creazione (tranne che sulle condivisioni di rete, che non era nemmeno la domanda). Questa risposta cerca di ottenere lo stesso risultato finale. Se SE avesse avuto una categoria di risposta chiamata "Soluzione alternativa" l'avrei messa sotto. Non è certamente peggiore di una "risposta" di un demone che si attacca a un framework (< asepsis.binaryage.com/> ), e molto più sicuro dell'hacking in un binario di sistema, e funziona su qualsiasi versione di Mac OS X.
TJ Luoma,

Solo che non ottiene lo stesso risultato finale. Blueharvest è una soluzione alternativa migliore (stesso risultato finale, tranne per il fatto che il computer esegue loke a hog). Anche l'asepsi è un driver IIRC.
Kinokijuf,

1
@kinokijuf, lascia cadere l'atteggiamento legittimo. Quando qualcuno ti offre aiuto gratuito, non puoi criticarlo. È giusto affermare, una volta, che non è quello che stai cercando, ma la difesa di TJ Luoma (che hai reso tristemente necessario) è più che sufficiente per farti tacere. Jeez.
r_alex_hall,

4

Per impedire la visualizzazione di quei brutti file .DS_Store sembra esserci un'opzione relativamente nuova per farlo in modo pulito, non solo per le unità di rete, come:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

ma anche per i volumi collegati tramite USB:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

Rispetto al titolo della domanda dei PO, questa è la soluzione migliore senza hack, poiché risolve non solo il comportamento scorretto della rete, ma viene anche effettuata per la maggior parte dei dischi collegati. E quelli potrebbero essere il più grande fastidio per la maggior parte degli utenti che condividono dispositivi come chiavette USB tra ambienti diversi. Utilizza solo le opzioni fornite da Apple e non interferisce in alcun modo con il normale funzionamento.

Rispetto alla situazione concreta spiegata nel corpo dei PO ha un valore limitato, poiché questa opzione USB è disponibile solo nelle versioni successive di OS X / macOS. Inoltre, questo non affronta ancora il problema della .DS_Storecreazione su dischi interni, dove possono anche essere una seccatura da affrontare. Sebbene in quel luogo potrebbero effettivamente servire a qualche tipo di scopo.

Una soluzione più completa a questo problema, seppur più incisiva, che funziona sulla maggior parte delle versioni del sistema operativo Mac è la seguente: Per eliminare completamente questo brutto comportamento su tutti i dischi - e con un patcher binario / iniettore di codice come la domanda di l'OP desidera ardentemente: c'è DeathToDSStore / con sorgente .

Entrambe queste opzioni presuppongono che chiunque usi ancora Finder ... L'uso di un altro file manager risolverebbe anche questo problema. Esistono numerosi contendenti che sostituiscono Finder per la gestione dei file su macOS. Due dei migliori cani in questo campo sono Pathfinder o XFile .


2
+1 per il comando USBStores (non lo sapevo!) E DeathToDSStore.
Wowfunhappy,

3

Prova questo comando: per impostazione predefinita scrivi com.apple.desktopservices DSDontWriteNetworkStores true nel terminale. Sembra funzionare per me.


4
Funziona solo per la rete, non per i volumi locali.
Kinokijuf,

Hai ragione. Mi scuso per la mia confusione.

4
Questo è l'unico caso reale in cui ho potuto vedere fastidiosi .DS_Stores. Sono nascosti su Mac OS per impostazione predefinita e sono cruciali per il salvataggio delle impostazioni di visualizzazione per le singole cartelle
Alexander - Ripristina Monica il

2
Ma non voglio salvare le impostazioni di visualizzazione.
Kinokijuf,

1

Ho creato uno script più efficiente (destinato a essere eseguito continuamente come demone), all'inizio eseguirà un'esecuzione findper cancellare i file già esistenti e catturerà nuovi file in tempo reale tramite fsevents. In questo modo verranno immediatamente eliminati mentre vengono creati e l'utilizzo delle risorse è molto basso. AFAIK questo è il modo migliore per sbarazzarsene senza disabilitare SIP.
Eccolo qui - https://github.com/magicgoose/DS_Store-Kill

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.