¿Cómo buscar (usando el comando de búsqueda) directorios y copiar todos los archivos y el directorio en otro directorio en Linux? Esto es lo que tengo hasta ahora:
find -type d -name "*.ABC" -exec {} /Desktop/NewFile \;
Obtengo esto como salida:
find: './GAE/.ABC: PERMISSION DENIED
¡Por favor ayuda, gracias!
Su error aquí arriba no tiene nada que ver con el permiso de lectura de archivos. ¡Estás intentando ejecutar los directorios que encuentras! Evite ejecutar comandos como root o sudo a menos que: (1) realmente los necesite y (2) realmente sepa lo que está haciendo. Muy a menudo, las personas que solicitan privilegios de root o sudo son exactamente los que no deberían tenerlos.
Dicho esto... hay varias formas de copiar un árbol de directorios en *nix. Este es solo un enfoque posible:
$ find <start> -type d -name \*.ABC -exec cp -av {} <target> \;
Donde:
<start>
es un nombre de directorio. Se usa para indicar dónde comenzar su find
(por ejemplo /usr/local
o $HOME
)<target>
es otro nombre de directorio para definir el destino final de sus directorios copiadosACTUALIZAR
En caso de que quieras buscar múltiples caminos...
$ find <start> -type d \( -name \*.ABC -o -name \*.DEF \) -exec cp -av {} <target> \;