使用过滤器将文件从一个文件夹复制到另一个文件夹

Copy files from one folder to another folder with filters

我的源文件夹中有这些文件

source_path/date=20191230/somefile.txt
source_path/date=20191231/somefile.txt
source_path/date=20200101/somefile.txt
source_path/date=20200102/somefile.txt

如果我执行以下命令,所有文件将被复制到我的 dest_path 文件夹

cp --recursive source_path/ dest_path/

我只想复制日期为 2020 年或其他日期的所有文件夹

我只需要这些到 2020 年的文件

source_path/date=20200101/somefile.txt
source_path/date=20200102/somefile.txt

如何使用 cp 命令添加过滤器

这个问题不适合 Stack Overflow,但这是答案:

cp --recursive source_path/date=20200* dest_path/

或者dest_path不存在?然后你会写

mkdir -p dest_path && cp --recursive source_path/date=20200* dest_path/

您可以使用带有 -name、-type 和 -exec 标志的查找,如果源目录是 /home/foo 并且目标目录是 /tmp:

find /home/foo -type d -name "*date-2020*" -exec cp '{}' /tmp \;

-type 表示我们只搜索目录,-name 是我们正在搜索的名称,exec 是我们正在执行的命令的结果