Copie y elimine archivos con extensiones de archivo específicas

En este tutorial, vamos a aprender a copiar archivos con una extensión específica de un directorio a otro, y luego eliminaremos los archivos originales. Para este tutorial, vamos a aprender más sobre elcp&findcomando, y aprenderemos cómo podemos usarlos juntos para que sea beneficioso para nosotros.

Tabla de contenido

El comando cp

El comando cp significa copia, su estructura de comando se parece a esto:

cp {OPTION} <Source> <Destination>

Para examplesi está copiando solo archivos (digamos file1 & file2) a un nuevo directorio en la carpeta de inicio, simplemente puede escribir:

cp file1 file2 ~/new

Y si está copiando un directorio completo, entonces tiene que usar el-ropción (recursiva).

cp -r Folder1 ~/new

El comando de búsqueda

El comando de búsqueda en Linux se usa para enumerar todos los archivos en el directorio actual o en un directorio específico. Usando sus opciones, también podemos listar archivos con una extensión específica. Digamos que solo queremos copiar archivos mp3 a otro directorio, primero listaremos todos los archivos mp3 usando el comando find, y luego redirigiremos su salida al comando cp. Para hacer esto, escriba el siguiente comando en la terminal:

find  -name "*.mp3" -type f
Listar todos los archivos Mp3

Copie todos los archivos con extensión específica

Como se discutió anteriormente, podemos simplemente canalizar la salida del comando find al comando cp. Pero, hay dos formas a través de las cuales puede copiar archivos. Puede mantener la estructura del directorio (si un archivo está en una carpeta en el origen, después de copiarlo permanecerá en esa carpeta en el destino) o puede copiar todos los archivos dentro de una carpeta sin mantener la estructura del directorio. Discutiremos ambos métodos uno por uno.

Mantener la estructura del directorio durante la copia

Para mantener la estructura de directorios, usaremos el comando cp y find de la siguiente manera:

cp --parents `find -name *.mp3*` /Destination/Folder
Mantenimiento de la estructura del directorio durante la copia

los--parentsLa opción nos permite mantener la estructura del directorio mientras copiamos.

No mantenga la estructura del directorio mientras copia

Para simplemente copiar todos los archivos mp3 que tenemos en un solo directorio, podemos usar el comando find y cp de la siguiente manera:

find . -name "*.mp3" -type f | xargs cp -vt Destination/Folder
Copiar sin mantener la estructura de archivosCopiar sin mantener la estructura de archivos

Eliminar archivos con una extensión específica

Ahora, supongamos que desea eliminar todos los archivos mp3 de la carpeta original (fuente) ahora que los ha copiado todos en un nuevo destino. Para ejecutar esto, simplemente usaremos el comando de búsqueda para listar todos los archivos mp3, y luego agregaremos la opción -eliminar al final del comando.

find . -name "*.mp3" -type f -delete
Borrar todos los archivos Mp3Borrar todos los archivos Mp3

Resumen

Copiar y eliminar archivos usando la GUI puede ser una molestia, ya que la búsqueda de archivos individuales puede llevar mucho tiempo. Esperamos que con este artículo haya podido aprender más sobre los comandos find y cp y haya podido copiar archivos en la terminal. Para obtener más detalles y opciones, siempre puede consultar las páginas man de cp y el comando find.

Artículos Relacionados