在 mac osx 终端中移动或复制查找调用的结果

Move or copy the results of a find call in mac osx terminal

我有一个很大的目录,里面装满了各种形状文件。我想移动或复制所有以 _31 结尾的文件。或_32。到不同的目录 (mac osx).

## Find all shapefiles ending in 31
find ./ -iname '*_31.*' 2>/dev/null

## Find all shapefiles ending in 32
find ./ -iname '*_32.*' 2>/dev/null

上面的查找调用成功找到了所有需要的文件。现在我想将这些结果移动或复制到新目录。有什么想法吗?

这是 xargs 的工作!

find ./ -iname '*_32.*' | xargs -I _ cp _ destination

xargs 将获取 find 的输出和每行 运行 一个命令。

-I _ 为随后在 cp 命令中使用的传入行设置一个占位符。