在命令行中复制一系列文件 (ZSH/BASH)

Amj*_*ith 14 linux bash copy zsh

我有一个以连续数字作为后缀的文件列表。我只想复制这些文件的一部分。如何将范围指定为 cp 命令的一部分。

$ls
P1080272.JPG* P1080273.JPG* P1080274.JPG* P1080275.JPG* P1080276.JPG* P1080277.JPG*
P1080278.JPG* P1080279.JPG* P1080280.JPG* P1080281.JPG* P1080282.JPG* P1080283.JPG*
Run Code Online (Sandbox Code Playgroud)

我想将文件从 P1080275.JPG 复制到 P1080283.JPG,内容类似于:

$cp P10802[75-83].JPG ~/Images/.
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

gle*_*man 28

你非常接近。您的问题几乎是正确的语法:

cp P10802{75..83}.JPG ~/Images
Run Code Online (Sandbox Code Playgroud)


小智 9

在 bash 中遍历一个范围:

for x in {0..10}; do echo $x; done
Run Code Online (Sandbox Code Playgroud)

在你的情况下应用相同的:

for x in {272..283}; do cp P1080$x.JPG ~/Images; done
Run Code Online (Sandbox Code Playgroud)