【问题标题】:Copy multiple files from one directory to another from Linux shell [closed]从Linux shell将多个文件从一个目录复制到另一个[关闭]
【发布时间】:2014-06-13 13:20:13
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: linux bash shell


    【解决方案1】:

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

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

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

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

    使用 zsh 完成制表符...

    【讨论】:

    • 哦,这就像一个魅力 :) 但我很想从中得到更多,有什么方法可以使用标签来获取建议吗? :) 我知道它要求太多,但以防万一。
    • 这不是全局;它是一个大括号扩展,扩展为两个特定的文件名。
    • @chepner 你是对的,我猜 OP 不想只 cp file1 file2 也许 file_?.t*... 我会纠正它。
    • 动画+1! :D
    • @hek2mgl 将来我会用 gif 发布任何答案! :-D
    【解决方案2】:

    使用通配符:

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

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

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

    这将复制file1file2xyzabc

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

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

    【讨论】:

    • 我不能,因为我不想复制所有文件:(
    • 选项参数如何使它复制隐藏的文件和文件夹?跳过它们的是通配符扩展,而不是 cp 命令。
    • -a 选项与隐藏文件无关,用于复制所有文件属性。
    • @Barmar has nothing to do... 这并不完全正确。 -a 确实复制了所有文件。但这与* glob 扩展无关,你是对的。我的英语很差,很难解释其中的区别
    • -a(其定义因cp 的实现而异)通常暗示-R,它执行递归复制。因此,它将包含子目录中的隐藏文件,但不会包含当前目录中没有与命令行参数之一显式匹配的隐藏文件。
    【解决方案3】:

    试试这个更简单的,

    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
    

    【讨论】:

      【解决方案4】:

      你可以在 bash 中使用brace expansion

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

      【讨论】:

      • 你可以进一步减少这个。
      • @AvinashRaj 是的,但问题中的文件未命名为 file1、file2 等...检查我的更新
      猜你喜欢
      • 2015-03-20
      • 2012-02-15
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 2013-06-01
      • 2020-06-22
      • 2014-08-12
      相关资源
      最近更新 更多