GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo canalizar los resultados de 'buscar' a mv en Linux

xargs se usa comúnmente para esto, y mv en Linux tiene un -t opción para facilitar eso.

find ./ -name '*article*' | xargs mv -t ../backup

Si tu find admite -exec ... \+ podrías hacer de manera equivalente

find ./ -name '*article*' -exec mv -t ../backup {}  \+

El -t opción es una extensión GNU, por lo que no es portátil para sistemas que no tienen GNU coreutils (aunque todos los Linux adecuados que he visto tienen eso, con la posible excepción de Busybox). Para una portabilidad completa de POSIX, por supuesto, es posible lanzar su propio reemplazo, tal vez algo como

find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+

donde abusamos descaradamente del conveniente hecho de que el primer argumento después de sh -c 'commands' termina como el parámetro "nombre del script" en $0 para que ni siquiera necesitemos shift eso.

Probablemente vea también https://mywiki.wooledge.org/BashFAQ/020


find ./ -name '*article*' -exec mv {}  ../backup  \;

O

find ./ -name '*article*' | xargs -I '{}' mv {} ../backup

Linux
  1. Cómo encontrar el archivo más antiguo en un árbol de directorios en Linux

  2. Cómo encontrar si el disco es SSD o HDD en Linux

  3. Linux:¿Cómo encontrar el controlador de dispositivo utilizado para un dispositivo?

  4. ¿Es posible canalizar los resultados de FIND a un CP de comando COPY?

  5. Cómo encontrar la dirección IP de la puerta de enlace en Linux

Cómo encontrar el tipo de sistema de archivos montado en Linux

Cómo encontrar la dirección IP en Linux

Cómo encontrar el nombre de host en Linux

Cómo encontrar el tamaño total de un directorio en Linux

Cómo encontrar archivos con el comando fd en Linux

Cómo encontrar la lista de repositorios instalados en Linux