如何使用最少数量的命令将所有子目录中的所有 .txt 文件复制到一个目录?

如何使用最少数量的命令将所有子目录中的所有 .txt 文件复制到一个目录?

我有 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解决方案中那样包含隐藏文件(或隐藏目录中的文件)。

相关内容