Я хочу выполнить это 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
Как я могу скопировать один файл в тот же каталог, но когда другое имя без изменения каталога или записи? полное имя папки?
Ошибка заключается в том, что оболочка пытается развернуть символ *
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
Предполагая, что debian.master/abi/2.6.38*
расширяется до нескольких каталогов:
for dir in debian.master/abi/2.6.38*/amd64; do cp $dir/generic $dir/core2; done