加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何使用cp,variable和括号从不同的目录复制多个文件?

发布时间:2020-12-15 21:06:14 所属栏目:安全 来源:网络整理
导读:我的问题与 How to copy multiple files from a different directory using cp?非常相似 我不想使用显式循环.这是我做的: $FILES_TOOLS="fastboot,fastboot-HW.sh"$cp $HOME/tools/{$FILES_TOOLS} $TOP_DIR/removemecp: cannot stat `/home/johndoe/tools/{
我的问题与 How to copy multiple files from a different directory using cp?非常相似

我不想使用显式循环.这是我做的:

$FILES_TOOLS="fastboot,fastboot-HW.sh"
$cp $HOME/tools/{$FILES_TOOLS} $TOP_DIR/removeme
cp: cannot stat `/home/johndoe/tools/{fastboot,fastboot-HW.sh}': No such file or directory

文件存在且目标有效,因为:

$cp $HOME/tools/{fastboot,fastboot-HW.sh} $TOP_DIR/removeme
$echo $?
0

>我试图从FILES_TOOLS中删除双引号,没有运气.
>我试着引用并引用{…},没有运气
>我试图反斜杠括号,没有运气
>我想这是实际发生shell扩展的问题.

解决方法

这个答案仅限于bash.

前置回显以查看您的cp命令变成什么:

echo cp $HOME/tools/{$FILES_TOOLS} $TOP_DIR/removeme

您必须在子shell中插入eval才能使其工作:

cp $( eval echo $HOME/tools/{$FILES_TOOLS} ) $TOP_DIR/removeme

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读