Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash:复制索引文件,保留文件索引_Bash - Fatal编程技术网

Bash:复制索引文件,保留文件索引

Bash:复制索引文件,保留文件索引,bash,Bash,我有一堆文件,名称如下: my-file_0.png my-file_1.png my-file_1.png ... my-file_0.png -> new-file_0.png my-file_1.png -> new-file_1.png my-file_2.png -> new-file_2.png ... 现在,我想将所有这些文件复制到一组新文件中,使用新前缀,但索引号相同。大概是这样的: my-file_0.png my-file_1.png my-file_1

我有一堆文件,名称如下:

my-file_0.png
my-file_1.png
my-file_1.png
...
my-file_0.png -> new-file_0.png
my-file_1.png -> new-file_1.png
my-file_2.png -> new-file_2.png
...
现在,我想将所有这些文件复制到一组新文件中,使用新前缀,但索引号相同。大概是这样的:

my-file_0.png
my-file_1.png
my-file_1.png
...
my-file_0.png -> new-file_0.png
my-file_1.png -> new-file_1.png
my-file_2.png -> new-file_2.png
...

用一个简短的Bash脚本来实现这一点,有什么好主意吗?

只需在Bash中的索引上使用for循环即可

for i in $(seq 0 2); do cp my-file_${i}.png new-file_${i}.png; done

您只能使用一个命令

for f in my-file* ; do mv $f ${f/my-file/new-file} ; done

${f/my file/new file}将变量f中的“my file”替换为“new file”。

到目前为止您尝试了什么?向我们展示一些不起作用的代码,这样我们可以帮助改进您迄今为止所做的工作。否则,
man-cp
和。我更喜欢这个解决方案,因为它不需要我预先定义文件的数量。