¿Existe un comando de terminal de mac para cambiar todos los archivos .html a .txt, incluidos los archivos en las subcarpetas también?
¿Existe un comando de terminal de mac para cambiar todos los archivos .html a .txt, incluidos los archivos en las subcarpetas también?
Supongo que en realidad solo quieres cambiarles el nombre. Ejecuta lo siguiente desde dentro de la carpeta. Si no confía en el comando, agregue echo
antes de mv
para ver lo que haría.
find . -type f -name "*.html" -exec bash -c "mv {} \'dirname {}\'/\'basename -s.html {}\'.txt" \;
Esto hace lo siguiente:
-type f
) en la carpeta actual ( .
) cuyo nombre termina con ".html" ( -name "*.html"
) dirname
), agrega una barra ( /
) y el nombre del archivo original sin el sufijo ".html" ( basename -s.html
) y agrega un ". txt "sufijo. mv
). En realidad, la notación '' para usar una salida de programas como parte de un comando está en desuso. Debería usarse
$()
en su lugar, pero en el caso defind
los backticks son más fáciles de usar.
Puedes usar rename
que puedes instalar usando brew .
Instala rename
utilizando brew: brew install rename
Renombrar archivos usando rename
:
rename -s .html .txt *
for file in *.html; do
mv "${file}" "${file%.html}".txt
done
Este 'for loop' es solo una forma de hacerlo.
Lea otras preguntas en las etiquetas terminal command-line mac