我想将几个文件从一个文件夹复制到另一个文件夹。我如何从shell命令提示符执行此操作?
考虑folder1
包含十个文件(例如file1
,file2
,abc
,xyz
,
等等。)。我目前正在执行以下操作,以便将两个文件从一个文件夹复制到另一个文件夹:
cp /home/ankur/folder/file1 /home/ankur/folder/file2 /home/ankur/dest
在两个文件的命令行中键入完整路径很烦人 我想到的是正则表达式,但我不知道该怎么做。
任何帮助都会降低我的RSI; - )
答案 0 :(得分:29)
我猜你正在寻找大括号扩展:
cp /home/ankur/folder/{file1,file2} /home/ankur/dest
看看这里,如果你想要处理多个文件一次会对你有所帮助:
http://www.tldp.org/LDP/abs/html/globbingref.html
使用zsh完成
答案 1 :(得分:10)
使用通配符:
cp /home/ankur/folder/* /home/ankur/dest
如果您不想复制所有文件,可以使用大括号选择文件:
cp /home/ankur/folder/{file{1,2},xyz,abc} /home/ankur/dest
这将复制file1
,file2
,xyz
和abc
。
您应该阅读Brace Expansion和Pathname Expansion上bash
手册页的各个部分,了解所有可以简化此操作的方法。
你可以做的另一件事是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