Usare la riga di comando per appiattire file e strutture di directory è un’operazione che si rivolge principalmente agli utenti esperti che si sentono a loro agio con il terminale. Se non ti riconosci in questa descrizione, potresti considerare di procedere manualmente utilizzando Finder o sfruttando l’app Mac Automator per automatizzare compiti simili nel file system. Adesso, concentriamoci sull’appiattimento delle directory dalla riga di comando.
Esempio di conversione di una directory di file nidificata
Per comprendere meglio cosa intendiamo, prendiamo come esempio una struttura di directory chiamata TestDirectory, posizionata nella cartella Home dell’utente. In questo caso, TestDirectory include sottocartelle come Sottodirectory1, Sottodirectory2 e Sottodirectory3, ognuna delle quali contiene file. L’obiettivo è appiattire questa struttura, spostando tutti i file dalla sottodirectory (X) alla directory principale «TestDirectory». Di seguito, un esempio di come potrebbe apparire la directory iniziale e i suoi contenuti:
$ find ~ / TestDirectory / -type f
~ / TestDirectory / rooty.jpg
~ / TestDirectory / SampleDirectory1 / beta-tool-preview.jpg
~ / TestDirectory / SampleDirectory1 / AlphaBeta-tool.jpg
~ / TestDirectory / SampleDirectory2 / test-tools.jpg
~ / TestDirectory / SampleDirectory3 / test-png.jpg
~ / TestDirectory / SampleDirectory3 / test1.jpg
~ / TestDirectory / SampleDirectory3 / test2.jpg
Per appiattire nuovamente la directory e il contenuto delle sue sottodirectory all’interno di TestDirectory, utilizzeremo il seguente comando:
find TargetDirectory / -mindepth 2 -type f -exec mv -i ‘{}’ TargetDirectory / ‘;’
Una volta completato il processo di appiattimento, i contenuti dovrebbero apparire come segue:
~ / TestDirectory / rooty.jpg
~ / TestDirectory / beta-tool-preview.jpg
~ / TestDirectory / AlphaBeta-tool.jpg
~ / TestDirectory / test-tools.jpg
~ / TestDirectory / test-png.jpg
~ / TestDirectory / test1.jpg
~ / TestDirectory / test2.jpg
Tieni presente che le sottodirectory rimarranno, ma saranno vuote. Ha senso? Se non è chiaro, o se questo non rispecchia ciò che desideri ottenere, forse hai bisogno di unirle o di utilizzare un’altra strategia per gestire i file.
Appiattimento di una struttura di directory e gerarchia di file nidificati con la riga di comando
Pronto a procedere? Ecco il comando che useremo per appiattire una struttura di directory e spostare tutti i file dalle sottodirectory alla base della directory di destinazione:
trovare [DIRECTORY] -mindepth 2 -type f -exec mv -i ‘{}’ [DIRECTORY] ‘;’
Sostituisci [DIRECTORY] con la directory che desideri appiattire, come mostrato nell’esempio precedente.
Sì, la directory appare due volte nel comando: la prima volta per cercare le sottodirectory da appiattire e la seconda come destinazione per i file trovati.
Fai attenzione a specificare correttamente la destinazione, poiché questa operazione non è reversibile (almeno, non senza un notevole lavoro manuale), quindi procedi solo se sei sicuro di voler riposizionare tutti i file nelle directory di destinazione, riportandoli alla cartella radice di destinazione.
Come accennato, puoi anche eseguire queste operazioni nel Finder di macOS, almeno per osservare le modifiche ai file e alle cartelle. L’opzione + cliccando sulle piccole frecce nella vista Elenco apre tutte le sottodirectory, mostrando la gerarchia delle cartelle in questo modo:
Dopo aver esplorato diverse alternative in bash e zsh, questo pratico trucco, suggerito da un commentatore su StackExchange, si è rivelato il metodo più semplice e compatibile. Se conosci un modo migliore per appiattire una directory nidificata, faccelo sapere nei commenti!
Novità nel 2024: Appiattire le directory in modo ancora più efficiente
Nel 2024, la gestione delle directory su Mac è diventata ancora più intuitiva grazie a vari aggiornamenti software. Con l’introduzione di nuove funzionalità di automazione e comandi migliorati, gli utenti possono ora appiattire le directory in modo più sicuro e veloce. Ad esempio, è possibile utilizzare script di shell personalizzati per automatizzare il processo di appiattimento, riducendo il rischio di errori e risparmiando tempo prezioso.
Inoltre, nuove applicazioni di terze parti stanno emergendo, offrendo interfacce grafiche per eseguire queste operazioni senza dover scrivere comandi complessi. Questa evoluzione rende l’appiattimento delle directory accessibile a un pubblico più ampio, compresi coloro che non si sentono a loro agio con il terminale. Ricordati sempre di fare un backup dei tuoi file prima di eseguire operazioni massicce come questa, per garantire che i tuoi dati siano al sicuro.
Con l’avanzare della tecnologia, è emozionante vedere come le operazioni sul file system continuino a migliorare, rendendo l’esperienza dell’utente sempre più fluida e soddisfacente.