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