我的文件夹结构是这样的:
ej-1/index.html
ej-1/js/scripts.js
ej-2/index.html
ej-2/js/scripts.js
...
ej-12/index.html
ej-12/js/scripts.js
有时我需要使用一组新的默认文件和文件夹来重新构造其他枚举文件夹。为此,我尝试使用以下命令将理想的文件夹基本结构复制到其他文件夹:
cp -r ej-1/* ej-{2..12}/*
我的期望是:
ej-1/* -> ej-2/*
ej-1/* -> ej-3/*
...
ej-1/* -> ej-12/*
相反,它将每个文件夹的内容复制到最后一个文件夹,从而产生一些覆盖的废话:
ej-1/* -> ej-12/*
ej-2/* -> ej-12/*
ej-3/* -> ej-12/*
...
我究竟做错了什么?
答案1
看一下cp
说明书,有man cp
。相关部分如下。
SYNOPSIS
cp [OPTION]... SOURCE... DIRECTORY
DESCRIPTION
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
通过指定多个参数,这就是您正在使用的格式。这会将多个SOURCE
s 复制到一个 s 中DIRECTORY
,即不是你想要什么。相反,如果您想将单个目录复制SOURCE
到多个目录,您可以使用类似for
循环的东西,例如
for i in {2..12}; do cp -r ej-1/* ej-$i; done
注意:这是未经测试的。我还*
从目标中删除了glob,因为它们是不必要的(根据我对你的问题的解释),并导致命令DIRECTORY
的结果是一个cp
。