使用过滤器将文件从一个文件夹复制到另一个文件夹
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 是我们正在执行的命令的结果
我的源文件夹中有这些文件
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 是我们正在执行的命令的结果