繁体   English   中英

在 BASH 中,如何在递归“查找”的文件的复制语句中引用目录名称

[英]In BASH, how do you reference a directory name in a copy statement of files you recursively "find"

  1. 我想递归地找到所有以 *DETAIL.pdf 结尾的文件
  2. 为每个与原始目录同名的文件创建一个新目录(在另一个驱动器中)
  3. 将文件复制到新目录中

我把这个作为我目前的尝试: find . -name \\*DETAIL.pdf -type f -not -path "./test2" -exec cp -R {} ./test2 \\; find . -name \\*DETAIL.pdf -type f -not -path "./test2" -exec cp -R {} ./test2 \\;

我正在努力通过引用每个文件的原始目录名称为所有这些文件创建新目录。

该示例提到使用cp但问题/问题本身没有提到,所以我建议只使用findtar 此外,尽管如上述评论中所述,该问题有点含糊不清,但该示例似乎表明所需的输出目录是正在搜索的同一目录的子目录。 鉴于:

find . -path "./test2" -prune -o -type f -name '*DETAIL.pdf' -print0 | \
tar c --null --files-from=- | \
tar xC test2

这使用find进行文件选择,生成一个(空分隔的)文件列表,然后tar使用该列表复制文件,第二个tar将根据需要创建相关目录并写入复制的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM