Spostare file da sottocartelle a una cartella principale
Spostare file da sottocartelle a una cartella principale con Esplora file, PowerShell, Finder o Terminale, gestendo i nomi uguali e le cartelle vuote rimaste.
Per spostare file da sottocartelle a una cartella principale, cerca in quella cartella ogni file, seleziona i risultati e spostali in un colpo solo. Esplora file e il Finder ci riescono entrambi, e una riga di PowerShell o di Terminale fa lo stesso. Ciò che va storto sono i file con lo stesso nome e le cartelle vuote che restano. Questa guida copre entrambi i casi.
L'ultimo metodo è per le cartelle che si riempiono di continuo, come un'importazione dal telefono che crea ogni giorno una nuova cartella.
Prima di appiattire una cartella: tre decisioni
Nomi uguali. Immagina una D:\Photos\Export con 140 sottocartelle datate, provenienti da due fotocamere. Entrambe contano da IMG_0001.jpg, quindi due file vorranno lo stesso nome nella destinazione. Decidi se tenerli entrambi con un numero o saltare il secondo. Ogni metodo qui sotto si comporta in modo diverso.
I nomi delle cartelle portano informazioni. Un album, un cliente, un viaggio, una data: una volta che i file sono messi insieme, quell'informazione sparisce. Metti il nome della cartella nel nome del file (File Arbor può farlo, vedi il Metodo 5) oppure mantieni la struttura.
Dove vanno i file. O nella cartella principale stessa o in una nuova. Spostare dentro lo stesso disco è istantaneo. Tra dischi diversi i file vengono copiati e poi eliminati dall'origine, e ci vuole più tempo. Se i file contano e stai per usare un comando, copia prima l'intera cartella e appiattisci la copia.
5 modi per estrarre file da sottocartelle, a confronto
| Metodo | Funziona su | File con lo stesso nome | Sottocartelle vuote dopo | Annulla | Si ripete da solo |
|---|---|---|---|---|---|
| Ricerca di Esplora file | Windows 10 e 11 | Esplora file chiede se sostituire, saltare o confrontare e tenere entrambi | Restano | Ctrl+Z subito dopo | No |
| PowerShell | Windows 10 e 11 | Il secondo file resta nella sua sottocartella, con un errore | Restano | No | No |
| Ricerca del Finder | macOS | Il Finder chiede se tenere entrambi, interrompere o sostituire | Restano | Annullamento dal menu Modifica subito dopo | No |
| Terminale | macOS | Il secondo file resta nella sua sottocartella (mv -n) | Restano | No | No |
| File Arbor (Pro) | Windows e Mac | Rinominato con un numero: IMG_0001 (1).jpg | Facoltativo: nel Cestino | Annulla dopo l'esecuzione, o per singolo file in Cronologia | Sì, con una pianificazione |
Nessun metodo integrato rimuove le sottocartelle svuotate. Per quegli avanzi, vedi come eliminare cartelle vuote.
Metodo 1: spostare tutti i file dalle sottocartelle con Esplora file (Windows 11 e 10)
- Apri la cartella principale, per esempio
D:\Photos\Export. - Fai clic sul campo di ricerca in alto a destra, digita
*e premi Invio. Esplora file cerca in questa cartella e in ogni sua sottocartella. - Passa alla vista Dettagli e fai clic sulla colonna Tipo, così le sottocartelle ("Cartella di file") si raggruppano, separate dai file.
- Fai clic sul primo file, Maiusc-clic sull'ultimo, e premi Ctrl+X.
- Vai alla destinazione, la cartella principale stessa o una nuova, e premi Ctrl+V.
Se lì c'è già un file con lo stesso nome, Esplora file chiede se sostituirlo, saltarlo o confrontare i due. Nella finestra di confronto spunta entrambe le versioni per tenerle tutte e due, e il file spostato riceve un numero. Ctrl+Z subito dopo uno spostamento lo annulla.
Esplora file diventa lento con decine di migliaia di file. I file nascosti compaiono solo se gli elementi nascosti sono visibili. E le sottocartelle svuotate restano.
Metodo 2: spostare file da sottocartelle alla cartella principale con PowerShell
Sostituisci il percorso con il tuo, senza barra rovesciata alla fine:
$root = "D:\Photos\Export"
Get-ChildItem -LiteralPath $root -File -Recurse |
Where-Object { $_.DirectoryName -ne $root } |
Move-Item -Destination $root
Il comando elenca ogni file sotto la cartella, salta quelli già nella cartella principale e sposta gli altri al suo interno. Per vedere l'anteprima senza spostare nulla, aggiungi -WhatIf alla fine dell'ultima riga.
Un file il cui nome esiste già nella cartella principale non viene sovrascritto. Move-Item rifiuta con un errore che dice che il file esiste già, e il file resta nella sua sottocartella. Rinominalo ed esegui di nuovo il comando. I file di sistema nascosti come desktop.ini e Thumbs.db restano dove sono. Lo abbiamo provato su Windows 11: un file con lo stesso nome è rimasto nella sua sottocartella con quell'errore, e desktop.ini è rimasto al suo posto.
Un avviso. Se vuoi copiare invece di spostare, non sostituire Move-Item con Copy-Item. Copy-Item sovrascrive i file con lo stesso nome senza chiedere. Per tenere gli originali, copia prima l'intera cartella e appiattisci la copia.
Metodo 3: appiattire una cartella su Mac con la ricerca del Finder
- Apri la cartella principale nel Finder e premi ⌘F.
- Accanto al campo di ricerca, scegli il nome della cartella al posto dell'ambito che comprende l'intero Mac, così i risultati arrivano solo da questa cartella e dalle sue sottocartelle.
- Imposta il criterio sul Tipo di file: immagini, PDF, musica, film, documenti, quello che stai raccogliendo. Scegliere un tipo tiene fuori dai risultati le cartelle stesse.
- Premi ⌘A, poi ⌘C.
- Apri la cartella di destinazione e premi ⌥⌘V. Questo sposta gli elementi invece di copiarli.
Se un nome è già occupato, il Finder chiede se tenere entrambi, interrompere o sostituire. Tenere entrambi aggiunge un numero al nome. Il comando di annullamento nel menu Modifica, subito dopo, annulla lo spostamento.
La ricerca del Finder si appoggia a Spotlight, quindi le cartelle che non indicizza non restituiscono nulla; per quelle usa Terminale. Le sottocartelle svuotate restano.
Metodo 4: estrarre file da sottocartelle con Terminale (Mac)
Spostati nella cartella principale, poi esegui find:
cd ~/Pictures/Export
find . -mindepth 2 -type f ! -name .DS_Store -exec mv -n {} . \;
Ecco cosa fa ogni parte:
-mindepth 2sceglie solo i file dentro le sottocartelle, quindi i file già nella cartella principale restano dove sono.- Escludere
.DS_Storesalta i file nascosti con le impostazioni di visualizzazione del Finder. mv -nnon sovrascrive mai, quindi un file il cui nome è già occupato resta nella sua sottocartella.
Per l'anteprima, esegui la stessa riga con -print al posto di -exec mv -n {} . \;:
find . -mindepth 2 -type f ! -name .DS_Store -print
Quando l'elenco ti sembra giusto, esegui il comando vero, poi rimuovi le sottocartelle vuote con il comando di Terminale nella guida sulle cartelle vuote.
Metodo 5: appiattire le cartelle in automatico con File Arbor
I Metodi da 1 a 4 servono per un appiattimento una tantum. Quando la cartella continua a riempirsi di nuove sottocartelle (un'importazione dalla fotocamera che crea una cartella al giorno, download di corsi, archivi estratti, uno scanner che archivia per data), dovresti ripetere la procedura ogni settimana.
File Arbor lo fa a ogni esecuzione, gestisce i nomi uguali e può spostare nel Cestino le cartelle svuotate (novità della 1.3.3). È basato su regole, senza intelligenza artificiale, e tutto avviene in locale. La scansione delle sottocartelle e la modalità Pianificato sono Pro.
- Fai clic su Aggiungi cartella e scegli la cartella principale, per esempio
D:\Photos\Exporto~/Pictures/Export. - Spunta Scansiona sottocartelle nella scheda della cartella. Funziona in modalità Manuale e Pianificato.
- Scegli Metti insieme e spunta Sposta le cartelle vuote nel cestino.
- Fai clic su Aggiungi regola. Scegli File con estensione e aggiungi
.jpg,.jpeg,.heice.png, scegli Sposta in una cartella e scriviAll photosin Sposta in. Per ogni file, qualunque sia il tipo, usa invece File corrispondenti al regex con il pattern.. - Premi Esegui. La finestra Conferma prima scansione mostra quanti file verranno spostati, quante cartelle e quanto in profondità è arrivata la scansione, e gli Spostamenti di esempio, prima che qualcosa si sposti.
- Per ripetere tutto, porta la cartella in modalità Pianificato, per esempio ogni giorno alle 18:00. L'app deve essere in esecuzione, nell'area di notifica o nella barra dei menu.
La destinazione deve essere una cartella dentro la cartella principale, come All photos, oppure un'altra cartella come D:\Photos\All. Un file già nella sua destinazione conta come organizzato, quindi File Arbor non metterà i file nella stessa cartella che sta scansionando.
Nomi uguali, annullamento e provenienza di un file
- Stesso nome. Con Comportamento in caso di conflitto su Rinomina, il valore predefinito, il secondo file arriva come
IMG_0001 (1).jpg. Nulla viene sovrascritto. Se l'impostazione è Sovrascrivi, la finestra della prima scansione avvisa in rosso e propone di eseguire la scansione con Rinomina. - Tenere il nome della cartella. Attiva "Cambia anche il nome del file" nella regola e, sotto Modifica come testo, scrivi
<Folder>_<Name>. AlloraRome/IMG_0001.jpgarriva comeRome_IMG_0001.jpg. L'anteprima della regola mostra ogni nuovo nome prima che qualcosa si sposti. - Annullamento. Annulla subito dopo l'esecuzione rimette a posto ogni file. In Cronologia, ogni spostamento è elencato con la sua provenienza, e ognuno si può annullare da solo. Le cartelle mandate nel Cestino si ripristinano da lì, non dall'app.
- Vuoi l'albero, non un mucchio? Mantieni struttura ricrea le sottocartelle sotto la destinazione.
- Esclusioni. Scegli le sottocartelle da tenere fuori dalla scansione.
node_modules,.gite cartelle simili vengono già saltate, e su Mac la scansione non entra mai dentro app o librerie di Foto.
Il piano gratuito copre una cartella monitorata, due regole, fino a 20 file al giorno, esecuzione manuale. La scansione delle sottocartelle, la modalità Pianificato e la corrispondenza con regex sono Pro, che costa $24.99 una tantum (vedi prezzi). Ogni opzione è elencata nella sezione sulle sottocartelle del manuale.
Se dopo aver appiattito vuoi riordinare per data, vedi come smistare i file in cartelle per anno e mese.
Come appiattire una struttura di cartelle senza perdere file?
Cinque abitudini:
- Guarda prima l'anteprima. Usa
-WhatIfin PowerShell,-printin Terminale, oppure Conferma prima scansione in File Arbor. - Non usare mai un'opzione di sovrascrittura su foto o documenti. Un file sostituito non torna indietro.
- Copia prima la cartella se i file contano e stai usando un comando.
- Controlla il numero di file prima e dopo. Esplora file e il Finder mostrano il numero di elementi.
- Elimina le cartelle vuote solo dopo lo spostamento, quando i conteggi coincidono.
Quale metodo usare?
Qualche centinaio di file su Windows. Ricerca di Esplora file.
Migliaia di file, o un comando che rilancerai. PowerShell, prima con -WhatIf.
Su Mac, file di un solo tipo. Ricerca del Finder con il criterio del tipo.
Tutto su Mac, o un disco non indicizzato. Terminale.
Una cartella che si riempie di nuove sottocartelle. File Arbor in modalità Pianificato, soprattutto se vuoi i file con lo stesso nome numerati, i nomi delle cartelle conservati nei nomi dei file e le cartelle vuote rimosse in un colpo solo. Per smistare i file in cartelle secondo uno schema nel nome, vedi smistare i file in cartelle in base al nome.
FAQ
Come spostare tutti i file dalle sottocartelle alla cartella principale su Windows 11?
Apri la cartella principale, digita * nel campo di ricerca, ordina per Tipo, seleziona i file, tagliali con Ctrl+X e incollali nella cartella principale. Per migliaia di file, una riga di PowerShell con Get-ChildItem e Move-Item fa lo stesso. In ogni caso le sottocartelle svuotate restano e vanno eliminate a parte.
Come appiattire una struttura di cartelle su Mac?
Nel Finder premi ⌘F, limita la ricerca alla cartella, imposta il tipo sul genere di file, seleziona tutto, copia, poi incolla nella destinazione con ⌥⌘V per spostare invece di copiare. In Terminale, esegui find con -mindepth 2 e mv -n dalla cartella principale. Le sottocartelle svuotate restano comunque.
Cosa succede ai file con lo stesso nome quando si appiattisce una cartella?
Dipende dal metodo. Esplora file e il Finder chiedono cosa fare e possono tenere entrambi i file aggiungendo un numero. PowerShell e mv -n lasciano il secondo file nella sua sottocartella. File Arbor lo rinomina con un numero, come IMG_0001 (1).jpg. Evita qualsiasi opzione di sovrascrittura su foto o documenti, perché il file sostituito è perso.
Posso copiare i file dalle sottocartelle in una cartella invece di spostarli?
Sì. In Esplora file usa Ctrl+C e Ctrl+V sui risultati della ricerca, e nel Finder usa ⌘V al posto di ⌥⌘V. In PowerShell, Copy-Item sovrascrive i file con lo stesso nome senza chiedere, quindi copia prima l'intera cartella e appiattisci la copia con i comandi di spostamento. Così l'albero originale resta intatto.
Come elimino poi le sottocartelle vuote?
Su Windows usa un ciclo rd nel Prompt dei comandi o una riga di PowerShell che rimuove le directory vuote. Su Mac elimina prima i file .DS_Store, poi esegui find con -type d -empty -delete. File Arbor Pro può anche spostare le cartelle vuote nel Cestino dopo ogni esecuzione, e da lì le puoi ripristinare. I comandi esatti sono nella guida per eliminare le cartelle vuote.
In sintesi
Una volta sola, qualsiasi metodo integrato fa il lavoro in pochi minuti. Quando la cartella continua a riempirsi, File Arbor Pro mette insieme i file con una pianificazione, numera i duplicati, conserva i nomi delle cartelle se vuoi e sposta le cartelle vuote nel Cestino. Scarica File Arbor e provalo su una cartella: il piano gratuito copre una cartella monitorata, due regole, fino a 20 file al giorno, esecuzione manuale. La scansione delle sottocartelle e la modalità Pianificato sono incluse in Pro, $24.99 una tantum con aggiornamenti a vita; vedi la pagina dei prezzi.