Я пытаюсь скопировать все *.tif
файлы из ./old в ./new. В ./old у меня много подкаталогов с разными файлами, а в ./new мне нужны только файлы TIF, без дерева папок.
Итак, я попробовал
cp -vR ./old/*.TIF ./new`
Но возникла ошибка:
No such file or directory "./old/*.TIF"
Что я делаю не так?
решение1
Используйте find для этогоfind . -name "*.TIF" -exec cp {} new \;
So find
используется для поиска файлов. Команда говорит find
файлы, начиная отсюда .
, где имя файла -name
заканчивается на .tif
запомните двойные кавычки для расширения оболочки. Так что найти все tif
файлы просто.
find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
Затем мы используем, -exec
чтобы что-то сделать с файлами, в данном случае cp
найденные файлы {}
в целевом каталоге, new
за которыми следует экранированная точка с запятой.\;
решение2
Должно быть так. Вам нужно войти в старый каталог:
cd old
cp -R *.tif ../new
решение3
.tif
Возможно, в каталоге нет файлов old
.
Более того, вы можете получить список файлов и скопировать их с помощью простого скрипта:
find /old -type f | xargs grep *.tif
предоставлю вам список.
Вы можете сделать это:
for i in `find /old -type f | xargs grep *.tif`
do
cp $i /new
done;