从Linux shell将多个文件从一个目录复制到另一个目录

时间:2014-06-13 13:20:13

标签: linux bash shell

我想将几个文件从一个文件夹复制到另一个文件夹。我如何从shell命令提示符执行此操作?

考虑folder1包含十个文件(例如file1file2abcxyz,  等等。)。我目前正在执行以下操作,以便将两个文件从一个文件夹复制到另一个文件夹:

cp /home/ankur/folder/file1 /home/ankur/folder/file2 /home/ankur/dest

在两个文件的命令行中键入完整路径很烦人 我想到的是正则表达式,但我不知道该怎么做。

任何帮助都会降低我的RSI; - )

4 个答案:

答案 0 :(得分:29)

我猜你正在寻找大括号扩展:

cp /home/ankur/folder/{file1,file2} /home/ankur/dest

看看这里,如果你想要处理多个文件一次会对你有所帮助:

http://www.tldp.org/LDP/abs/html/globbingref.html

使用zsh完成

选项卡...

enter image description here

答案 1 :(得分:10)

使用通配符:

cp /home/ankur/folder/* /home/ankur/dest

如果您不想复制所有文件,可以使用大括号选择文件:

cp /home/ankur/folder/{file{1,2},xyz,abc} /home/ankur/dest

这将复制file1file2xyzabc

您应该阅读Brace ExpansionPathname Expansionbash手册页的各个部分,了解所有可以简化此操作的方法。

你可以做的另一件事是cd /home/ankur/folder。然后,您只需键入文件名而不是完整路径名,您可以通过键入 Tab 来使用文件名完成。

答案 2 :(得分:3)

您可以在bash中使用brace expansion

cp /home/ankur/folder/{file1,abc,xyz} /path/to/target

答案 3 :(得分:2)

试试这个更简单的,

cp /home/ankur/folder/file{1,2} /home/ankur/dest

如果要复制所有10个文件,请运行此命令

 cp ~/Desktop/{xyz,file{1,2},next,files,which,are,not,similer} foo-bar