move files and directories in linux - mv command, move or rename, files and directories in linux -17
Tabla de contenido:
- Antes de que empieces
- Excluir un archivo específico
- Excluir un directorio específico
- Excluir múltiples archivos o directorios
- Excluir múltiples archivos o directorios basados en un patrón
- Conclusión
Rsync es una utilidad de línea de comandos rápida y versátil que sincroniza archivos y carpetas entre dos ubicaciones a través de un shell remoto.
Con Rsync puede duplicar datos, crear copias de seguridad incrementales y copiar archivos entre sistemas. Al copiar datos, es posible que desee excluir uno o más archivos o directorios en función de su nombre o ubicación.
En este tutorial, le mostraremos cómo excluir archivos y directorios con rsync.
Antes de que empieces
Debe tener un conocimiento básico de cómo funciona rsync.
En los ejemplos a continuación, usaremos rsync con la opción
-a
. Esto le dice a rsync que sincronice directorios de forma recursiva, transfiera dispositivos especiales y bloquee y conserve enlaces simbólicos, tiempos de modificación, grupo, propiedad y permisos.
Al excluir archivos o directorios, debe usar sus rutas relativas al directorio de origen.
Hay dos opciones para especificar los archivos y directorios que desea excluir:
- Desde una línea de comando, usando la
--exclude
--exclude. Desde un archivo, usando la--exclude-from
.
Excluir un archivo específico
Para excluir un archivo específico, pase la ruta relativa al archivo a la opción
--exclude
.
En el siguiente ejemplo, el archivo
src_directory/file.txt
no se transferirá:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
Excluir un directorio específico
Excluir un directorio específico es lo mismo que excluir un archivo, simplemente pase la ruta relativa al directorio a la opción
--exclude
como se muestra a continuación:
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
Excluir múltiples archivos o directorios
Para excluir múltiples archivos o directorios, simplemente especifique múltiples opciones de
--exclude
:
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/
Si el número de archivos y / o directorios que desea excluir es grande, en lugar de utilizar múltiples opciones
--exclude
, puede especificar los archivos y directorios que desea excluir en un archivo y pasar el archivo a
--exclude-from
opción.
El siguiente comando hace exactamente lo mismo que el anterior:
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
exclude-file.txt
Excluir múltiples archivos o directorios basados en un patrón
Con rsync también puede excluir archivos y directorios basados en un patrón que coincida con el nombre del archivo o directorio.
Por ejemplo, para excluir todos los archivos
.jpg
que ejecutaría:
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
Es un poco más complicado excluir todos los demás archivos y directorios, excepto aquellos que coinciden con un cierto patrón. Supongamos que desea excluir todos los demás archivos y directorios, excepto los archivos que terminan en
.jpg
.
Una opción es usar el siguiente comando:
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
Cuando se utiliza la opción de inclusión / exclusión múltiple, se aplica la primera regla coincidente.
-
--include='*.jpg'
- Primero incluimos todos los archivos.jpg
.--include='*/'
- Entonces estamos incluyendo todos los directorios dentro del directorio insrc_directory
. Sin esto, rsync solo copiará archivos*.jpg
en el directorio de nivel superior.-m
: elimina los directorios vacíos.
Otra opción sería canalizar la salida del comando find a rsync:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
-
-printf %P\\0\\n
- eliminará elsrc_directory/
de la ruta del archivo.--files-from=-
- significa incluir solo los archivos de la entrada estándar (archivos pasados del comando find).
Conclusión
En este tutorial, aprendió a excluir archivos y directorios al transferir datos con Rsync. Hay mucho más que aprender sobre Rsync en la página del Manual del usuario de Rsync.
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.
Cómo eliminar archivos y directorios usando la línea de comando de Linux
En este tutorial, le mostraremos cómo usar el comando rm para eliminar archivos y directorios a través de ejemplos y explicaciones de las opciones rm más comunes.
Cómo mover archivos y directorios en linux (comando mv)
Mover archivos y directorios es una de las tareas más básicas que a menudo necesita realizar en un sistema Linux. En este tutorial, explicaremos cómo usar el comando mv para mover archivos y directorios.