Estoy intentando copiar todos *.tif
los archivos de ./old al ./new. En ./old tengo muchos subdirectorios con diferentes archivos, y en ./new solo necesito archivos TIF, sin árbol de carpetas.
Así que lo intenté
cp -vR ./old/*.TIF ./new`
Pero recibí el error:
No such file or directory "./old/*.TIF"
¿Qué estoy haciendo mal?
Respuesta1
Utilice buscar para estofind . -name "*.TIF" -exec cp {} new \;
Entonces find
se utiliza para buscar archivos. El comando dice find
archivos que comienzan desde aquí, .
donde el nombre del archivo -name
termina en .tif
recuerde las comillas dobles para la expansión del shell. Entonces encontrar todos los tif
archivos es simple.
find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
Luego usamos -exec
para hacer algo con los archivos, en este caso cp
los archivos encontrados {}
en el directorio de destino new
seguidos de un punto y coma escapado.\;
Respuesta2
Debería ser así. Tienes que ingresar al directorio antiguo:
cd old
cp -R *.tif ../new
Respuesta3
Es posible que no tenga ningún .tif
archivo en el old
directorio.
Además, puedes obtener una lista de archivos y copiarlos usando un script simple:
find /old -type f | xargs grep *.tif
te daré la lista.
Puedes hacerlo:
for i in `find /old -type f | xargs grep *.tif`
do
cp $i /new
done;