![如何使用最少数量的命令将所有子目录中的所有 .txt 文件复制到一个目录?](https://linux22.com/image/54522/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%9C%80%E5%B0%91%E6%95%B0%E9%87%8F%E7%9A%84%E5%91%BD%E4%BB%A4%E5%B0%86%E6%89%80%E6%9C%89%E5%AD%90%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%20.txt%20%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我有 90 多个子目录,每个子目录中都会有许多 .txt 文件。
我需要做的是将所有这些 txt 文件复制到一个目录中。
我怎样才能做到这一点?
答案1
使用命令:
find . -name "*.txt" -exec cp {} /path/to/destination \;
答案2
为了避免cp
每个文件运行一个(与 一样-exec cp {} /dest \;
):
find . -name '*.txt" -type f -exec sh -c '
exec cp "$@" /path/to/destination' sh {} +
或者使用 GNU cp
:
find . -name '*.txt" -type f -exec cp -t /path/to/destination {} +
和zsh
:
cp ./**/*.txt(.) /path/to/destination
或者
cp ./**/*.txt(D.) /path/to/destination
如果您想像find
解决方案中那样包含隐藏文件(或隐藏目录中的文件)。