【问题标题】:Copy Directory and Subdirectories only if String present in name [closed]仅当名称中存在字符串时才复制目录和子目录[关闭]
【发布时间】:2021-03-07 08:27:36
【问题描述】:

我有几个目录:

Blue-3.30
Red-Green-5.50
Blue-Red-3.30
BLUE-RED-4.40
A-Blue-3.30
GreenBlue-44.00

在本例中,我将如何复制文件夹及其内容,前提是它们的名称中包含“蓝色”一词?我还想复制复合词中出现“blue”的文件夹(如文件夹 GreenBlue-44.00)?

【问题讨论】:

  • 这些文件夹中是否还有需要移动的文件?
  • 您是否要区分大小写? (find-regex 也可以处理。)

标签: bash directory copy


【解决方案1】:

您可以使用find 命令。

find 命令有以下选项,对您的问题很有用:

  • -regex(在你的情况下,它可以是.*Blue.*
  • -type d(仅限目录)
  • -maxdept(您可以定义要查找的级别)

此外,您可以使用-exec 或管道到xargs 进行复制操作。

您可以在手册页中找到有关这些选项的更多详细信息。

【讨论】:

    【解决方案2】:

    像这样使用find 命令:

    find . -type d -iname '*blue*' -exec cp -r {} /destination/dir/path \;
    

    -type d:查找目录。
    -iname '*blue*':查找与blue匹配的名称,不区分大小写。
    -exec cp -r {} /destination/dir/path \;:将每个项目复制到所需的目标目录。

    【讨论】:

    • 谢谢!这对我的用例很有效,正是我想要的。
    猜你喜欢
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多