Tempo di Lettura: 4 minuti
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 😉
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…)
@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.
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 :\
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…
Pingback: 30 seconds to Tambu · Cose che sembrano banali, e invece… 29 Novembre 2007
[…] http://www.levysoft.it/archivio/2007/11/29/su-mac-os-x-leopard-se-si-sposta-una-cartella- su-un-perc… […]
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 😉
Grazie per averlo segnalato… mi hai salvato da un futuro fatto di spostamenti distruttivi! 😉
Ciao,
Emanuele
Ho fatto un commento ma non me lo aggiunge 🙁 dice che c’è ma non lo vedo…magari l’antispam l’ha bloccato?
@Emanuele: prego 🙂
@Ciccio: non è nenche in moderazione… non so… prova a ripostarlo.
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 :-P….
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.
ovviamente kde come DE si comport benissimo :d
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.
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
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
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.
avevo inserito anche io un commento ieri, su questo post, ma non è stato pubblicato…
ciao 🙂
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 :-P….
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.
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!
@capemaster
quel bug è stato risolto con l’aggiornamento alla 10.5.1
@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.
e’ quello che mi auguro anche io….
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?
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. 😉
Pingback: Levysoft » Perché quando si disattiva Akismet questo continua a funzionare in background facendo sparire i presunti commenti di spam? 1 Dicembre 2007
[…] 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é […]
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.
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 …
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ì…
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.
@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!
Pingback: Levysoft » Comportamento anomalo nella copia via rete di singoli file tra Mac OS X Leopard e una cartella condivisa su Windows con partizione NTFS 28 Febbraio 2008
[…] di aver visto davvero tutto sulle differenze tra il mondo Windows e quello Mac e sugli incidenti che possono accadere se si […]
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…!
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
🙁
@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.
@Roby:
Da neo utente MacOS X, mi permetto di dire la mia, facendo seguito a molti dei post che si sono susseguiti fino ad ora.
In quanto scelta progettuale non ritengo si possa discuterla in alcun modo. Ce ne sono tante discutibili fatte da MS nel suo sistema, così come ce ne sono in molte distribuzioni Linux. Sta ad ognuno di noi valutare quali sono i pro ed i contro di ciascuna e decidere “con chi stare”.
Quello che ritengo sia grave è il non aver ben esplicitato le conseguenze che tale operazione avrebbe comportato. E’ vero che viene specificato che la cartella verrà sostituita, ma è anche vero che non si fa alcun riferimento al contenuto della cartella stessa.
Una mancata informazione è una negligenza. Non si può assumere che l’utente, quale che sia la sua provenienza, sia edotto a priori.
@Danilo: concordo abbastanza. Se hai deciso di creare una gui su un sistema unixlike, devi assicurarti che i tuoi utenti non combinino casini, altrimenti sei nella stessa situazione di win. Sostituire una cartella, se non sono un utente unix non capisco che significa perdere il contenuto. Visto che l’esito dell’operazione è pesante, sarebbe opportuna una doppia conferma, ok per il replace e poi ok ad un alert relativo al fatto che così il contenuto viene eliminato.
Ciò detto passiamo alla valutazione sull’opportunità di non introdurre di default un sistema di merge.
Non capisco, sul mio macbook nuovo mi sono ritrovato addirittura Apache e php da attivare con un semplice flag e non ho di default la possibilità di fare merge?
Se mi date apache potete considerare che lo usi per svilupparci su delle web app (o anche solo che ce le installi su e che magari debbano essere aggiornate a blocchi). Ora, io non ho mai visto delle webapp senza una nidificazione spinta di dir, con proliferazione abnorme di microfiles. E parimenti mi capita si sviluppare estensioni, moduli, plugin o anche semplicemente agggiornare blocchi di codice sparsi in vari files in n-mila cartelle. Tutto ciò senza un sistema di merge è un incubo. I workaround ci sono, presumo, partendo dal terminale per arrivare all’installazione di un serverino ftp da usare in locale, ma per l’appunto, essendo workaround, denotano la carenza di una feature.
Per fortuna mi ricordavo di questa situazione e quando ho visto replace mi sono bloccato andando a cercare se ci fosse una soluzione ‘di sistema’, ma sembra ancora non ci sia.
So che i post sono vecchi, ma mi hanno lasciato a bocca aperta. Specie dopo la spiegazione chiara e limpida di Folletto Malefico.
Se siete in un’altra città e vi dicono: “Quella strada è a senso unico” e voi la imboccate, non potete poi lamentarvi che la strada era effettivamente a senso unico. Anche se nella tua città, dove eri stato fino al giorno prima, facendo quella strada, in realtà, non si finiva in un senso unico.
Il comando è chiarissimo, è solo questione di abitudine. Io sono utente Mac da sempre: quando in università il pc mi unisce i file, bestemmio e pulisco la cartella. Ma non è colpa del Pc, è colpa mia! O no?
6600 canzoni cancellate per questo bello scherzetto…
winzozz 7 decisamente meglio.. cazzuto, ma migliore…
driver, installazioni, schermate blu, rotture di palle,
pero -> file eliminati per sbaglio: 0
Lion ha introdotto il merge. Ergo era una features mancante. Come ho spiegato sopra, ci sono casi in cui senza merge non si riesce a effettuare semplici operazioni. Al contrario, ottenere il comportamento standard di Mac (pre Lion) costa una semplice operazione in più e non è nemmeno distruttivo. Sforzandomi non mi viene in mente altro (ora nemmeno questo) che porterei su Mac da win
io sto provando data rescue 3,
vedrò cosa riuscirà a salvare