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

Ank*_*ank 14 linux bash shell

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

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

cp /home/ankur/folder/file1 /home/ankur/folder/file2 /home/ankur/dest
Run Code Online (Sandbox Code Playgroud)

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

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

Ken*_*ent 32

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

cp /home/ankur/folder/{file1,file2} /home/ankur/dest
Run Code Online (Sandbox Code Playgroud)

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

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

使用zsh完成选项卡...

在此输入图像描述


Bar*_*mar 12

使用通配符:

cp /home/ankur/folder/* /home/ankur/dest
Run Code Online (Sandbox Code Playgroud)

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

cp /home/ankur/folder/{file{1,2},xyz,abc} /home/ankur/dest
Run Code Online (Sandbox Code Playgroud)

这将复制file1,file2,xyz,和abc.

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

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


hek*_*mgl 5

您可以在 bash 中使用大括号扩展

cp /home/ankur/folder/{file1,abc,xyz} /path/to/target
Run Code Online (Sandbox Code Playgroud)