Su Mac OS X Leopard se si sposta una cartella su un percorso dove ne risiede un’altra con lo stesso nome, vengono persi tutti i dati di quest’ultima. Su Windows invece vengono solo aggiunti! Bug o strano comportamento di Leopard?
Ieri sera mi ha chiamato Davide un po’ perplesso perché, mentre sistemava i suoi file, si era trovato a dover spostare una directory con il nome “Installazioni” presente sul disco del suo portatile, verso il percorso di un disco esterno dove risiedeva una directory con lo stesso nome “Installazioni” (e in cui risiedevano diversi gigabyte di file). Ebbene, forte della sua decennale esperienza su Windows non ha lontanamente pensato che questo evento potesse essere catastrofico. E così è stato perché dopo aver spostato la cartella sul disco esterno, si è ritrovato la cartella Installazioni completamente svuotata dal suo precedente contenuto (diversi gigabyte di dati, ve lo ricordo) e si è trovato solo quei pochi file che aveva spostato.
Insomma sarà un comportamento normale su un qualunque sistema Unix che usa il comando ‘mv’, ma per tutti i nuovi mac-user che provengono dal mondo Windows, questo comportamento è assolutamente imprevedibile. La soluzione più semplice è quella di entrare nella cartella e fare il drag-and-drop del contenuto: in questo caso il comportamento è identico che in altri sistemi operativi. Ma ora mi chiedo: quanti di voi erano a conoscenza di questo strano comportamento del Mac?
Nella speranza di evitare che qualcun altro commetta lo stesso errore ho deciso, quindi, di segnalare questo presunto bug poiché io, francamente, non ne ero a conoscenza e per farlo ho sperimentato lo spostamento di una directory su Mac OS X 10.5 Leopard e su Windows XP che e ho qui di seguito documentato.
Spostare una directory su Mac OS X 10.5 Leopard
1. Creiamo una directory sulla Scrivania e la chiamiamo “A“.

2. All’interno di questa directory creeremo una file col nome “file a1.rtf” e una directory “directory a”

3. All’interno della cartella “directory a” creiamo un altro file: “file a2.rtf”

4. Ora, in un altro percorso (in questo caso nella root del nostro mac), creiamo una analoga cartella con lo stesso nome “A”

5. che conterrà, anch’essa, un file e una directory, ma con nomi diversi dai precedenti (“file b1.rtf” e “directory b“)

6. mentre all’interno della cartella “directory b” vi sarà un altro file: “file b2.rtf“.

7. Ora non facciamo altro che fare un semplice drag and drop della cartella “A” presente sulla root del nostro Mac verso la nostra Scrivania in qui è presente una cartella con lo stesso nome “A”

8. Una volta rilasciata la cartella sulla Scrivania ecco che Leopard ci da il seguente messaggio di avvertimento:
Un elemento più vecchio chiamato “A” esiste già in questa situazione. Vuoi sostituirlo con quello che stai spostando?

9. L’avviso, col senno di poi, è stato abbastanza chiaro… peccato che noi abbiamo cliccato sul tasto “Continua”

10. Se ora andiamo a verificare il contenuto della cartella presente sulla Scrivania ecco che ci accorgiamo che tutti i file e directory precedenti sono stati eliminati e sostituiti con quelli nuovi.

Peccato che i file eliminati non sono neanche mai finiti nel Cestino!
Inoltre, anche se è prevista la possibilità di annullare lo spostamento, questa operazione non ripristina i file appena cancellati bensì riporta nelle sua posizione originaria la cartella che si è voluto spostare.
Certo se avessimo fatto un backup col comodo Time Machine, forse ci saremmo salvati, ma io credo che questo comportamento non sia il massimo per un sistema operativo che vuole venire incontro alle esigenze degli utenti, specie per coloro che provengono dal mondo Windows, in un mondo in cui, forse sbagliando, si fa in automatico il merge dei file!
Forse la soluzione più rapida ed opportuna sarebbe stato quella di inserire almeno una terza opzione nella domanda: Stop, Sostituisci e Unisci!
Spostare una directory su Windows XP
Ora ripetiamo le analoghe operazioni ma su una piattaforma Windows.
Per farla breve e senza ripetere tutti i passi, abbiamo una directory di nome “A” sotto “C:\Temp”

e sul Desktop un’altra cartella con lo stesso nome “A” ma dal contenuto diverso

Provando a spostare, con un semplice drag and drop, la directory “A” da “C:\Temp\” a “C:\Documents and Settings\Administrator\Desktop” ecco l’avviso che Windows ci mostra:

e lo stesso messaggio di avviso ci viene dato per ogni directory uguale che incontra sul suo percorso:

Come vedete i file contenuti precedentemente non sono stati cancellati bensì uniti a quelli nuovi (sempre se con nome diverso, ovviamente)

e

Cosa ne pensate?
Secondo voi quale sistema operativo si comporta meglio: Mac o Windows?
Esiste su Mac OS X la possibilità di evitare questo genere di problemi (magari con qualche shortcut nascosta)?
Attendo i vostri commenti in merito.

Funziona così anche su Tiger… Mac non fa il merge cioè precisamente non lo fà finder se usi File Manager (che non è per ora compatibile con Leopard) dovrebbe farlo e chiederti quasi le stesse cose di windows…
Ehm anche il mac ha le sue mancanze
29 novembre 2007 alle 10:28 | Rispondi a Smash
Non è tecnicamente un bug in quanto pare che al funzionalità è stata progettato cosi come funziona!
Detto questo in questo caso windows ha il comportamento migliore!!
Su gnome e kde usando il drag&drop che succede?? (non l’ho a portata di mano e non posso provare…)
29 novembre 2007 alle 10:41 | Rispondi a franto
@franto: in effetti probabilmente non è un bug (non so se accadeva anche con Tiger) ma di certo è un comportamento veramente strano e pericoloso. La tua domanda sul comportamento di Linux è molto interessante… peccato che neanche io al momento disponga di linux (almeno con interfaccia grafica… ho solo una lato server).
Speriamo qualcuno riesca a fare questa prova.
29 novembre 2007 alle 10:54 | Rispondi a Antonio Troise
Questa cosa mi lascia parecchio sconvolto: ne capisco il senso ma fa diventare un’operazione banale decisamente PERICOLOSA! Stavolta il caro e vecchio Windows è decisamente più intelligente…e si che basterebbe solo un bottone in più come affermi tu
Tiger agiva ugualmente? Speriamo che alla mela notino e prendano provvedimenti :\
29 novembre 2007 alle 10:57 | Rispondi a Ciccio
Non so se sia un bene o un male, forse sarà comodo per chi usa Leopard, ma senza dubbio è un comportamento grave del Sistema Operativo, cancellare dei file senza chiedere una conferma è un qualcosa di spaventoso…
29 novembre 2007 alle 11:32 | Rispondi a Multimedia Player
[...] http://www.levysoft.it/archivi.....-cartella- su-un-perc… [...]
29 novembre 2007 alle 12:20
Non è un bug. E’ un comportamento tipico dei sistemi unix. Le cartelle vengono viste come file ai quali viene aggiungo l’attributo “d” per indicare che quel file deve essere trattato come una directory. Pertanto, quando si tenta si sostituire una cartella, in realtà si sta sostituendo un file. La sostituzione via interfaccia su mac rispecchia appieno il comportamento che si ha da riga di comando (Terminale) con i comandi cp e mv. Invece, su Linux questo viene ovviato dai window manager, come kde o gnome, ma le prestazioni, durante la copia di file, calano parecchio. Putroppo questa è l’unica cosa che mi manca del mondo windows, ma di certo non sarà questo a farmi tornare indietro….basta prestare solo un po’ di attenzione
29 novembre 2007 alle 13:01 | Rispondi a Antonio
Grazie per averlo segnalato… mi hai salvato da un futuro fatto di spostamenti distruttivi!
Ciao,
Emanuele
29 novembre 2007 alle 13:15 | Rispondi a Emanuele
Ho fatto un commento ma non me lo aggiunge
dice che c’è ma non lo vedo…magari l’antispam l’ha bloccato?
29 novembre 2007 alle 13:15 | Rispondi a Ciccio
@Emanuele: prego
@Ciccio: non è nenche in moderazione… non so… prova a ripostarlo.
29 novembre 2007 alle 14:42 | Rispondi a Antonio Troise
non si tratta di un bug. Questo è un tipico comportamento dei sistemi Unix, nei quali una cartella viene vista come un file con attributo “d” che sta ad indicare che questo deve essere trattato come una directory. Pertanto, quando si tenta di sovrascrivere una cartella, in realtà si sta sovrascrivendo un file. Nel caso specifico, la copia via interfaccia grafica su Mac OS X rispecchia appieno tale comportamento. Inoltre, anche agendo da riga di comando (Terminale nel caso di Mac OS X) i comandi cp e mv sovrascrivono le cartelle. Su Linux questo viene ovviato facendo uso di window manager, come kde o gnome, che consentono all’utente di scegliere se sovrascrivere o aggiornare una cartella, ma quest’ultima opzione degrada notevolmente le prestazioni dell’operazione di copia.
Certo è che il comportamento migliore è sicuramente quello di Windows, ma certamente non sarà questo che mi farà tornare indietro….basta essere solo un po’ più attenti
….
Su Mac si potrebbe pensare di utilizzare da riga di comando il comando ditto, la cui funzione principale è quella di copiare file o cartelle. Nel caso di cartelle, se nel percorso di destinazione non è presente la crea, altrimenti, se esiste, unirà il contenuto della cartella di destinazione con quello di origine senza perdita di dati.
29 novembre 2007 alle 15:22 | Rispondi a Antonio
ovviamente kde come DE si comport benissimo :d
29 novembre 2007 alle 16:50 | Rispondi a psychomantum
Non è un bug, è solo un comportamento diverso. È così almeno da Tiger, ma molto probabilmente è così in tutte le versioni di OS X. Windows in questo caso fa meglio? Magari sì, ma in fondo basta saperlo.
29 novembre 2007 alle 17:57 | Rispondi a Jeby
Ho provato su KDE e Gnome ha lo stesso comportamento di Windows.
L’ho sempre fatto con tranquillità… meno male non mi sono mai trovato troppo a lungo davanti a un Mac (per questo eh, niente flame :p) :s
29 novembre 2007 alle 18:00 | Rispondi a Ciso
mh
grazie
ho appena preso un iMac e sono arcicontento, ma queto mi sarà utile, soprattutto adesso che dovrò muovere una grande quantità di dati
So anche che c’è un bug:
pare che Lopard sposti il file da un drive all’altro rimuovendolo dalla fonte prima di accertarsi che all’arrivo sia tutto ok…
questo non va bene
29 novembre 2007 alle 22:37 | Rispondi a capemaster
capemaster; mi risulta che questo accade solo se si sposta un file in un hard disk collegato ad una base airport extreme. Se si tratta di un hdd collegato via porta usb o firewire viene sempre fatto con un controllo della buona riuscita della copia. Infatti Time Machine è disabilitato per hdd su airport extreme perché, per ora, sarebbe inutile fare un backup se non si ha la certezza dell’integrità dei dati salvati.
30 novembre 2007 alle 01:31 | Rispondi a Davide
avevo inserito anche io un commento ieri, su questo post, ma non è stato pubblicato…
ciao
30 novembre 2007 alle 08:48 | Rispondi a Multimedia Player
Ecco la spiegazione:
non si tratta di un bug. Questo è un tipico comportamento dei sistemi Unix, nei quali una cartella viene vista come un file con attributo “d” che sta ad indicare che questo deve essere trattato come una directory. Pertanto, quando si tenta di sovrascrivere una cartella, in realtà si sta sovrascrivendo un file. Nel caso specifico, la copia via interfaccia grafica su Mac OS X rispecchia appieno tale comportamento. Inoltre, anche agendo da riga di comando (Terminale nel caso di Mac OS X) i comandi cp e mv sovrascrivono le cartelle. Su Linux questo viene ovviato facendo uso di window manager, come kde o gnome, che consentono all’utente di scegliere se sovrascrivere o aggiornare una cartella, ma quest’ultima opzione degrada notevolmente le prestazioni dell’operazione di copia.
Certo è che il comportamento migliore è sicuramente quello di Windows, ma certamente non sarà questo che mi farà tornare indietro….basta essere solo un po’ più attenti
….
Su Mac si potrebbe pensare di utilizzare da riga di comando il comando ditto, la cui funzione principale è quella di copiare file o cartelle. Nel caso di cartelle, se nel percorso di destinazione non è presente la crea, altrimenti, se esiste, unirà il contenuto della cartella di destinazione con quello di origine senza perdita di dati.
30 novembre 2007 alle 09:10 | Rispondi a Antonio
Scusate per i disagio dei commenti: avevo disabilitato Akismet ma sembra che funzionava egualmente e metteva in Spam i vostri commenti. Cmq nessun commento è stato perso!
30 novembre 2007 alle 09:15 | Rispondi a Antonio Troise
@capemaster
quel bug è stato risolto con l’aggiornamento alla 10.5.1
30 novembre 2007 alle 09:17 | Rispondi a Antonio
@Antonio: grazie mille per la spiegazione… daccordissimo sul fatto che è un comportamento normale per i sistemi unix, ma quello che mi auspicherei è che, in onore della filosofia user-friendly, in futuro Apple migliori la gestione delle spostamento delle cartelle.
30 novembre 2007 alle 09:51 | Rispondi a Antonio Troise
e’ quello che mi auguro anche io….
30 novembre 2007 alle 15:22 | Rispondi a Antonio
Non è un bug, è così da sempre nel mondo Apple. Piaccia o non piaccia, non entro nel merito semplicemente appurando che il problema fondamentale è un altro: perchè si ignorano i messaggi di avviso?
30 novembre 2007 alle 20:46 | Rispondi a Roby
Io farei però notare un dettaglio che mi sembra sia stato vagamente ignorato: viene detto esplicitamente se vuoi interrompere o SOSTITUIRE (REPLACE).
La domanda è precisa e non da adito a interpretazioni: Mac OS X in caso di omonimia LO CHIEDE.
La domanda di Windows (e mi pare anche KDE) è invece differente.
Per questo motivo non c’è alcun problema di usabilità, non c’è niente di non user-friendly e infatti non è mai stato riscontrato come disagio dagli utenti, che semplicemente capiscono cosa succede leggendo.
L’unica obiezione che si può fare è che si tratta di un processo distruttivo e in generale questo genere di operazioni andrebbero evitate a qualunque livello… ma è anche vero che se si vuole sostituire un file… lo si vuole fare punto e basta, quindi un compromesso da qualche parte bisogna metterlo.
C’è anche una motivazione tecnica marginale a questo comportamento: se le cartelle fossero fuse assieme, ci sarebbe una eccezione comportata dai Bundle, ovvero quelle cartelle che agiscono come oggetti unici, ad esempio i programmi stessi (.app)!

Se facesse il merge, dovremmo ogni volta prima eliminare il vecchio programma e poi aggiungere quello nuovo, pena ritrovarsi con un programma “doppio” a causa dei vecchi file + i nuovi vile.
Certo, si potrebbe fare una eccezione… ma lavorare di eccezioni non è *mai* una buona cosa.
Meglio quindi tenere il comportamento Unix, avvisare l’utente e… sperare che legga.
30 novembre 2007 alle 21:58 | Rispondi a Folletto Malefico
[...] di gestire i commenti segnalati come “Spam Akismet”. E’ quello che è successo ieri in cui più di qualche mio visitatore non è riuscito a farsi pubblicare un commento, perché [...]
1 dicembre 2007 alle 10:01
Purtroppo non mi sembra che si possa fare il discorso “piaccia o non piaccia, MacOs è così” oppure “è solo un comportamento diverso”, bensì credo che, come già affermato da MULTIMEDIA PLAYER, la pericolosità di una cancellazione di file senza richiesta di conferma sia assolutamente mostruosa.
2 dicembre 2007 alle 12:07 | Rispondi a Anto
Ovviamente il mi articolo è stato scritto per il fatto che, nell’ultimo mese, in molti, compreso il sottoscritto, è migrato con grande soddisfazione su piattaforme Mac e, provenendo inevitabilmente da Windows, un comportamento del genere anche se corretto e segnalato, può trarre in inganno chiunque. Il mio scopo era solamente quello di avvertire coloro che ancora non erano incappati in questa particolare eventualità. Certo, se poi un giorno venisse implementata una famosa terza scelta (Unisci) allora si potrà sicuramente lasciare maggiore margine di sicurezza ai propri utenti. In ogni caso, ora che lo so, mi adeguo a questo comportamento
Interessante la spiegazione di Folletto Malefico sugli .app … in effetti su Mac un applicativo è costituito da solo una cartella …
2 dicembre 2007 alle 13:19 | Rispondi a Antonio Troise
x ANTO
Leggi bene ciò che ho scritto. La mancanza della conferma della presunta ‘mostruosità’ di cui parli non esiste proprio, infatti: “Un elemento chiamato (nome elemento) esiste già in questa posizione. Vuoi sostituirlo con quello che stai spostando?” Dice Folletto Malefico: “La domanda è precisa e non da adito a interpretazioni: Mac OS X in caso di omonimia LO CHIEDE.” Appunto, il termine ’sostituire’ significa… sostituire! Più chiaro di così…
5 dicembre 2007 alle 15:41 | Rispondi a Roby
Salve a tutti!
Ho trovato in modo del tutto casuale la soluzione a questo problema. Avevo letto questo messaggio giorni orsono, anche se ahimè mi era capitato già questo inconveniente. Sono anch’io un nuovo Mac user: il mio primo Mac, con Mac OS X Leopard, ha appena compiuto un mese. Provengo da Windows XP. Dopo averlo letto, ho confermato la mia tesi secondo cui, come dici tu, in Mac non esiste alcun merge delle cartelle. Il mio unico dubbio, quando persi quei dati di cui prima…di cui per fortuna avevo copia su un hard disk esterno, era di aver fatto male qualche operazione.
In Windows mi ero abituato ad utilizzare Total Commander (chi si ricorda Norton Commander in MS-DOS?) per la gestione dei files. E’ vero, meno grafica, ma molta velocità in più e possibilità di usare shortcuts tramite tastiera. Quando son passato a Mac, ho trovato una valida alternativa – davvero ottima – in Disk Order, giunto alla versione 2.5.1 . Ebbene, utilizzando Disk Order nella gestione dei files, il merge avviene perfettamente. Anche Disk Order propone due scelte, come nel tradizionale Finder, però stavolta premendo Sostituisci avviene il merge dei file. Io la trovo un’ottima soluzione…anche se mi rendo conto che non tutti amano avere un file manager con cui lavorare. Non è una soluzione made in Apple, e non toglie il fatto che la Apple potrebbe inserire una terza scelta nel sistema operativo del tipo Unisci (sono d’accordissimo). Tuttavia suppongo sia un valido pagliativo nell’attesa che ciò avvenga.
Segnalo la cosa a quanti interessati. Disk Order è un programma shareware, ma la licenza mi sembra più che onesta nel costo, ed è valida anche per i successivi aggiornamenti del programma. Oppure è possibile non registrarlo visualizzando un box di dialogo che pubblicizza la registrazione ad ogni avvio del programma. Per trovare il programma, basta digitare Disk Order su Google oppure andare su http://www.likemac.ru . Io mi trovo benissimo con questo programma, che è pure localizzato in Italiano ed è compativecchio bile con diversi ed utili plug-in aggiuntivi. Anche meglio del mio Total Commander, e come ques’ultimo funge pure da client FTP.
Saluti e buone feste.
Fabrizio.
15 dicembre 2007 alle 17:47 | Rispondi a Fabrizio
@Fabrizio: Grazie per la segnalazione di questo file manager. Certo il finder è uno strumento utilissimo e potente ma devo dire che, essendo abituato all’explorer di Windows ancora non mi sono totalmente adattato alla sua filosofia di utilizzo, specie per quanto riguarda la selezione multipla dei file e quando devo sapere, senza premere “Ottieni Informazioni” quanto spazio occupano 2 o più file selezionati. Quindi penso che proverò ad installarlo!
Ciao e buone feste anche a te!
15 dicembre 2007 alle 22:02 | Rispondi a Antonio Troise
[...] di aver visto davvero tutto sulle differenze tra il mondo Windows e quello Mac e sugli incidenti che possono accadere se si [...]
28 febbraio 2008 alle 09:15
Il problema non è nella chiarezza del messaggio visualizzato dal Finder, che è limpida. Il guaio è che un utente che arriva da un sistema Windows è abituato a leggere messaggi che ci azzeccano poco o nulla con quello che sta realmente accadendo, e quindi la prima volta che vede questa dialog pensa: “ma sì, mi dice sostituisci, ma *in realtà* me li unirà!”. E invece, in realtà, fa esattamente quello che c’è scritto. Eh, quando si dice un sistema operativo senza trucchi né inganni…!
9 marzo 2008 alle 10:29 | Rispondi a MetalElf0
ieri spostando una cartella su Leopard ho cancellato per sbaglio 480 Giga di Serie TV
ho provato un data recovery ma ha recuperato ben poco
20 ottobre 2008 alle 09:27 | Rispondi a DoubleGJ
@DoubleGJ: oops mi dispiace… avrei voluto che ti fosse imbattuto in questo articolo prima del problema… purtroppo se si cancellano i dati su Mac è ben difficile recuperarli, anche se esistono tool specifici. L’unico consiglio che ti posso dare è di non soffermarti a cercare Spftware di recovery per Mac OS X ma cerca anche quelli per Windows… ce ne sono di più. Certo è che, se la directory era su una partizione HFS, purtroppo non tutti gli applicativi per Windows riescono a gestire questo file system.
20 ottobre 2008 alle 09:54 | Rispondi a Antonio Troise