Eliminare file/directory con la forza

Torniamo a parlare di come gestire file e cartelle in modi non troppo ortodossi in ambiente Windows. Dopo aver spiegato come rinominare più file con un solo comando, oggi vi spiego come eliminare con la forza file o cartelle bloccati. Avete presente che certe volte risulta “impossibile trovare il percorso/file specificato”? Ecco, succede che in certi percorsi la lunghezza delle sottodirectory o la presenza di caratteri speciali “blocchi” automaticamente file e/o cartelle, rendendole impossibili da cancellare.

Cercando online troverete numerose guide che vi consigliano questo o quel programmino. Non seguitele, perché è una cosa che potete risolvere, nella maggior parte dei casi, con un semplice comando. Avviate il Prompt dei Comandi come Amministratore, e digitate:

del /f /q /a percorso_file

Se volete cancellare un determinato file. Il comando delete viene combinato con l’opzione /f che forza l’eliminazione del file, /q che si assicura dell’eliminazione dei file in sola lettura e /a che ci assicura di scegliere ed eliminare il file corretto. Ovviamente, sostituite il percorso del file con il percorso assoluto del file che volete cancellare! Oppure, digitate:

rd /s /q percorso_directory

Se volete cancellare una directory. Il comando Remove Directory viene associato ai parametri /s che cerca e cancella tutte le sottodirectory presenti, e /q che forza l’eleminazione delle cartelle senza chiedere conferma. Anche in questo caso, assicuratevi di sostituire il path con il percorso assoluto della directory.

Nella maggior parte dei casi, riuscirete a risolvere con questi due semplici comandi. Non vi servono programmi, tools o altro, ma solo il prompt che già avete.

Rinominare più file tramite PowerShell

Oltre 2000 file da rinominare…

Da diverse settimane sto aggiornando le gallerie fotografiche di questo sito, e mi trovo ad affrontare numerosi file conservati nel corso degli anni. Nel corso del tempo infatti ho usato diversi metodi di “archiviazione”, alcuni piuttosto spartani e poco adatti ad un import online. Come vedete nell’immagine al lato, ci sono diverse foto salvate con un prefisso (l’anno dello scatto) compreso tra due parentesi quadre. Non il massimo della praticità, insomma.

Si tratta di oltre 2000 immagini, e sinceramente non mi va proprio di spendere un pomeriggio a rinominarle una per una. E non ho neanche voglia di mettermi a cercare qualche programmino da scaricare. Pur non avendo a disposizione il mio caro e vecchio terminale, posso usare uno strumento decisamente simile: Windows PowerShell. Con due semplici comandi infatti ho aggirato il problema in pochi minuti.

Avviamo PowerShell e spostiamoci nella cartella dove vogliamo effettuare la modifica (il comando è sempre cd). Assicuriamoci che non ci siano altri file, perchè questi comandi interesseranno tutto il contenuto della directory (anche altre cartelle). Il mio primo istinto è quello di “normalizzare” il nome di file sostituendo ogni spazio con un trattino basso, il minimo per dei file che andranno a finire online. Quindi, inizio con questo:

dir | rename-item -newname { $_.name -replace " ","_" }

Come avrete capito, l’opzione “rename-item” va a cambiare il nome di tutti i file nella directory attraverso un cambio di caratteri. Nel mio caso, ho specificato che gli ” ”  (lo spazio) vengano sostituiti con i “_” (i trattini bassi). In pochi secondi, tutti i file sono stati aggiornati.

Si passa quindi alla domanda più difficile: come elimino da tutti questi file il prefisso? Non trattandosi di una sostituzione o di una modifica, nel mio caso posso pensare di eliminare tot. caratteri dall’inizio del nome di ogni file. Essendo il prefisso uguale per ogni file, mi basta sapere quanti caratteri occupa per poterlo rimuovere agevolmente. Quindi, vado con questo:

dir | rename-item -newname { [string]($_.name).substring(7) }

Un comando un po’ più complesso ma altrettando semplice. Nel mio caso, il prefisso è composto da 7 caratteri (l’anno tra parentesi quadre più il trattino basso), quindi sempre con l’opzione “rename-item” procedo questa volta alla cancellazione dei primi sette caratteri dalla stringa (in questo caso, dal nome dei file). Pochi secondi ed il gioco è fatto.

Se con l’eliminazione del prefisso alcuni file avranno lo stesso nome questi non verranno modificati, quindi dovrete rinominarli manualmente (oppure spostare le foto già rinominate in un’altra cartella e lanciare di nuovo il comando 😉 ). In questo modo, ho rinominato oltre 2000 file in poco meno di 2 minuti, e sono pronti per finire nella nuova area Gallerie del sito.

Un po’ di fantasia e questi due comandi si adatteranno anche alla vostra situazione.

Unire rapidamente dei file PDF

Tra le migliaia di utilità disponibili nella nostra bella distro GNU/Linux, vi è anche un piccolo ma potentissimo software, che ci permette di manipolare i file PDF senza troppi sbattimenti. Sto parlando ti PDFTK, una suite completa di ogni possibile opzione per giocherellare con i nostri onnipresenti file.

Tra le opzioni meno interessanti, ma che sicuramente rientra tra le più utilizzate, c’è la possibilità di unire più file in un unico PDF. Nel mondo del pinguino esistono diversi tools per farlo, ma la semplicità del comando va a favore della memoria. Per l’appunto, il comando è:

pdftk a.pdf b.pdf cat output c.pdf

Ovviamente, bisogna indicare il percorso dei file, o spostarsi fisicamente nella cartella dove si trovano. Non c’è un limite al numero di PDF che si possono unire. L’ordine dei fogli è quello con il quale vengono indicati inizialmente (da esempio, il primo foglio sarà A, il secondo B e così via). Il tool è disponibile anche per Windows, dove può essere usato via prompt.

Tenetelo a mente quando riceverete la prossima mail con allegati 3 file PDF appartenenti ad un unica scansione 😀