我有一些文件夹层次结构,在一些文件夹中有图像,我需要一个shell脚本,它可以列出所有图像并将它们复制到一个指定的文件夹中,列出它们并不重要,我只想复制所有图像到一个文件夹?
我知道我可以
ls -R *.png
但是如何将它们全部复制到一个文件夹中呢?
谢谢!
最佳答案
更新:正如 glenn jackman 所指出的,与我提供的答案相比,这会稍微更有效率:
file . -type f -name \*.png | xargs cp -t destination
有关解释,请参阅 glenn 在该答案之后的评论。
一种方法是使用 find
:
find . -type f -name "*.png" -exec cp {} ~/path/to/your/destination/folder \;
解释:
-
find
用于查找文件/目录 -
.
从当前工作目录开始查找(或者,您可以指定路径) -
-type f
: 只考虑文件(而不是目录) -
-name "*.png"
: 只考虑带有 png 扩展名的 -
-exec
:对于找到的每个这样的结果,做一些事情(见下文) -
cp {} ~/path/to/your/destination/folder \;
:这是做某事的部分:将找到的每个此类结果(代入{}
)复制到指定的目的地。
关于用于列出当前文件夹和子文件夹中的所有图像并将它们复制到一个文件夹中的 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447513/