Estou tentando copiar todos *.tif
os arquivos de ./old para ./new. Em ./old tenho muitos subdiretórios com arquivos diferentes, e em ./new preciso apenas de arquivos TIF, sem árvore de pastas.
Então, eu tentei
cp -vR ./old/*.TIF ./new`
Mas recebi o erro:
No such file or directory "./old/*.TIF"
O que estou fazendo de errado?
Responder1
Use find para issofind . -name "*.TIF" -exec cp {} new \;
Então find
é usado para localizar arquivos. O comando está dizendo find
arquivos começando aqui .
onde o nome do arquivo -name
termina em .tif
lembre-se das aspas duplas para expansão do shell. Então, encontrar todos os tif
arquivos é simples.
find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
Em seguida, usamos -exec
para fazer algo com os arquivos, neste caso, cp
encontramos os arquivos {}
no diretório de destino new
seguido por um ponto e vírgula com escape\;
Responder2
Deveria ser assim. Você tem que entrar no diretório antigo:
cd old
cp -R *.tif ../new
Responder3
Talvez você não tenha nenhum .tif
arquivo no old
diretório.
Além disso, você pode obter uma lista de arquivos e copiá-los usando um script simples:
find /old -type f | xargs grep *.tif
lhe dará a lista.
Você consegue fazer isso:
for i in `find /old -type f | xargs grep *.tif`
do
cp $i /new
done;