ver varios todos subdirectorios otro mover los listar ejemplos directorios directorio copiar contenido comandos comando basicos archivos archivo unix find cp mv

unix - todos - mover varios archivos en linux



¿Cómo mover o copiar los archivos listados por el comando ''buscar'' en Unix? (5)

Tengo una lista de ciertos archivos que veo usando el siguiente comando, pero ¿cómo puedo copiar esos archivos enumerados en otra carpeta, digamos ~ / test?

find . -mtime 1 -exec du -hc {} +



En realidad, puede procesar el resultado del comando de find en un comando de copia de dos maneras:

  1. Si la salida del comando find no contiene ningún espacio, es decir, si el nombre del archivo no contiene un espacio, puede usar:

    Syntax: find <Path> <Conditions> | xargs cp -t <copy file path> Example: find -mtime -1 -type f | xargs cp -t inner/

  2. Pero nuestros archivos de datos de producción pueden contener espacios, por lo que la mayoría de las veces este comando es efectivo:

    Syntax: find <path> <condition> -exec cp ''{}'' <copy path> /; Example find -mtime -1 -type f -exec cp ''{}'' inner/ /;

En el segundo ejemplo, la última parte, el punto y coma también se considera parte del comando de find , y debe escaparse antes de presionar Enter . De lo contrario, obtendrá un error como:

find: missing argument to `-exec''


Si está utilizando GNU find,

find . -mtime 1 -exec cp -t ~/test/ {} +

Esto funciona tan bien como conectar la salida en xargs mientras se evitan las trampas de hacerlo (maneja espacios incrustados y saltos de línea sin tener que usar find ... -print0 | xargs -0 ... ).


mueve los archivos encontrados hasta un directorio relativo a su directorio actual (no su directorio actual)

find . -path "*/yourfolder/*" -type f -execdir mv {} .. /;


find /PATH/TO/YOUR/FILES -name NAME.EXT -exec cp -rfp {} /DST_DIR /;