Cambia tutti i file .txt in file .md in una determinata cartella

4

Esiste un comando Terminale o qualcosa del genere per rinominare i file in una determinata cartella? Fondamentalmente voglio cambiare tutti i file che hanno un .txt come tipo di file e cambiarlo in .md (per markdown). È possibile? Sono a mio agio nell'usare il terminale, essendo uno sviluppatore, quindi non trattenere le soluzioni. :)

Grazie in anticipo per qualsiasi aiuto tu possa fornire.

    
posta greduan 05.10.2012 - 19:04
fonte

2 risposte

15

Puoi eseguire le seguenti operazioni nel terminale:

find . -iname "*.txt" -exec bash -c 'mv "$0" "${0%\.txt}.md"' {} \;

Questo rinominerà in modo ricorsivo tutti i file .txt nella directory corrente in .md.

    
risposta data 05.10.2012 - 19:34
fonte
1

Anche se non usi zsh come shell predefinita, puoi comunque usare zmv in una shell temporanea:

zsh -c 'autoload zmv;$0 $@' zmv -w '*.txt' '$1.md'

ricorsivamente:

zsh -c 'autoload zmv;$0 $@' zmv -w '**/*.txt' '$1$2.md'

Nota: l'opzione -n è utile per il test.

zmv è descritto nella manpage zshcontrib e la sintassi completa del glob è descritta nella manpage zshexpn nella sezione "Generazione di nome file".

    
risposta data 06.10.2012 - 08:57
fonte

Leggi altre domande sui tag