Скопировать файл в каталог, используя подстановочные знаки или регулярное выражение в месте назначения?

Я хочу выполнить это cp debian.master/abi/2.6.38*/amd64/generic debian.master/abi/2.6.38*/amd64/core2, но bash выдает ошибку в секунду *:

cp: cannot create regular file `debian.master/abi/2.6.38*/amd64/core2': No such file or directory

Как я могу скопировать один файл в тот же каталог, но когда другое имя без изменения каталога или записи? полное имя папки?

1
задан 6 May 2011 в 18:35

2 ответа

Ошибка заключается в том, что оболочка пытается развернуть символ * glob перед выполнением команды, а пункт назначения еще не существует. Одна из возможностей преодолеть это было бы

cp debian.master/abi/2.6.38*/amd64/generic "$(eval echo debian.master/abi/2.6.38*/amd64)"/core2

Более просто вы можете сделать:

( cd debian.master/abi/2.6.38*/amd64/; cp generic core2 )

Или также

dir=debian.master/abi/2.6.38*/amd64/
cp "$dir"/generic "$dir"/core2
0
ответ дан 6 May 2011 в 18:35

Предполагая, что debian.master/abi/2.6.38* расширяется до нескольких каталогов:

for dir in debian.master/abi/2.6.38*/amd64; do cp $dir/generic $dir/core2; done
0
ответ дан 6 May 2011 в 18:35

Другие вопросы по тегам:

Похожие вопросы: