Copiar, mover, renombrar y eliminar desde la terminal de Ubuntu
Tabla de contenido:
- Renombrar archivos con el comando mv
- Renombrar múltiples archivos con el comando mv
- Renombrar archivos con el comando Renombrar
- Conclusión
Cambiar el nombre de los archivos y directorios es una de las tareas más básicas que a menudo necesita realizar en un sistema Linux.
Cambiar el nombre de un solo archivo es fácil, pero cambiar el nombre de varios archivos a la vez puede ser un desafío, especialmente para los usuarios que son nuevos en Linux. Puede cambiar el nombre de los archivos utilizando un administrador de archivos GUI o mediante el terminal de línea de comandos.
En este tutorial, le mostraremos cómo usar los comandos
mv
y
rename
para renombrar archivos y directorios.
Renombrar archivos con el comando mv
El comando
mv
(short from move) se usa para renombrar o mover archivos de una ubicación a otra. La sintaxis para el comando
mv
es la siguiente:
mv source destination
El
source
puede ser uno o más archivos o directorios y el
destination
puede ser un solo archivo o directorio.
- Si especifica varios archivos como
source
, eldestination
debe ser un directorio. En este caso, los archivos desource
se mueven al directorio de destino. Si especifica un solo archivo comosource
y eldestination
destino es un directorio existente, el archivo se mueve al directorio especificado. Para cambiar el nombre de un archivo, debe especificar un archivo único comosource
y archivo único comodestination
.
Por ejemplo, para cambiar el nombre del archivo
file1.txt
como
file2.txt
, ejecutaría:
Renombrar múltiples archivos con el comando mv
El comando
mv
puede cambiar el nombre de un solo archivo a la vez, pero se puede usar junto con otros comandos como
find
o inside bash para o while bucles para cambiar el nombre de varios archivos.
El siguiente ejemplo muestra cómo usar el Bash for loop para cambiar el nombre de todos los archivos
.html
en el directorio actual cambiando la extensión
.html
a
.php
.
for f in *.html; do mv -- "$f" "${f%.html}.php" done
Analicemos el código línea por línea:
- La primera línea crea un bucle for e itera a través de una lista de todos los archivos con bordes
.html
. La segunda línea se aplica a cada elemento de la lista y mueve el archivo a uno nuevo reemplazando.html
con.php
. La parte${file%.html}
está utilizando la expansión del parámetro de shell para eliminar la parte.html
del nombredearchivo.done indica el final del segmento de bucle.
También podemos usar el comando
mv
en combinación con
find
para lograr lo mismo que arriba.
find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;
El comando find está pasando todos los archivos que terminan con
.html
en el directorio actual al comando
mv
uno por uno utilizando el
-exec
. La cadena
{}
es el nombre del archivo que se está procesando actualmente.
Como puede ver en los ejemplos anteriores, renombrar múltiples archivos usando el comando
mv
no es una tarea fácil ya que requiere un buen conocimiento de las secuencias de comandos Bash.
Renombrar archivos con el comando Renombrar
El comando
rename
se usa para renombrar múltiples archivos. Este comando es más avanzado que
mv
ya que requiere un conocimiento básico de las expresiones regulares.
Hay dos versiones del comando
rename
con una sintaxis diferente. En este tutorial, usaremos la versión perl del comando
rename
. Si no tiene esta versión instalada en su sistema, puede instalarla fácilmente usando el administrador de paquetes de su distribución.
-
Instalar renombrar en Ubuntu y Debian
sudo apt install rename
Instalar renombrar en CentOS y Fedora
sudo yum install prename
Instalar renombrar en Arch Linux
yay perl-rename ## or yaourt -S perl-rename
La sintaxis para el comando
rename
es la siguiente:
rename perlexpr files
El comando
rename
cambiará el nombre de todos los
files
acuerdo con la expresión regular
perlexpr
especificada. Puede acerca de las expresiones regulares perl aquí.
Por ejemplo, el siguiente comando cambiará todos los archivos con la extensión
.html
a
.php
:
rename 's/.html/.php/' *.html
Puede usar el argumento
-n
para imprimir los nombres de los archivos a renombrar, sin renombrarlos.
rename -n 's/.html/.php/' *.html
La salida se verá más o menos así:
rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)
Por defecto, el comando renombrar no sobrescribirá los archivos existentes. Pase el argumento
-f
para permitir que los archivos existentes se sobrescriban.
rename -f 's/.html/.php/' *.html
A continuación hay algunos ejemplos más comunes de cómo usar el comando rename:
-
Reemplazar espacios en nombres de archivo con guiones bajos
rename 'y/ /_/' *
Convertir nombres de archivo a minúsculas
rename 'y/AZ/az/' *
Convertir nombres de archivo a mayúsculas
rename 'y/az/AZ/' *
Conclusión
En este momento, debe tener una buena comprensión de cómo usar los comandos
mv
y
rename
para cambiar el nombre de los archivos. Por supuesto, hay otros comandos para cambiar el nombre de los archivos en Linux, como
mmv
. Los nuevos usuarios de Linux que se sienten intimidados por la línea de comandos pueden usar herramientas de cambio de nombre de la GUI, como Métamorphose.
Cambiar nombre o cambiar el nombre del SO en Windows Boot Manager
Usar EasyBCD para cambiar el nombre, cambiar el nombre de su sistema operativo Windows en msconfig o Windows Boot Manager , que se ve en el arranque en el sistema de arranque dual.
Cómo copiar archivos y directorios en Linux
Copiar archivos y directorios es una de las tareas más comunes que realizará cuando trabaje en la línea de comandos. En Linux, hay varios comandos para copiar archivos con cp y rsync como las herramientas más utilizadas.
Cambiar el nombre del comando en Linux (cambiar el nombre de varios archivos)
El comando rename cambia el nombre de los archivos dados reemplazando la expresión de búsqueda en su nombre con el reemplazo especificado.