Linux:按扩展名将所有文件复制到单个目录

9 linux cp ubuntu

我试图将所有*.tif文件从 ./old复制到 ./new。在 ./old 中,我有很多包含不同文件的子目录,而在 ./new 中,我只需要 TIF 文件,不需要文件夹树。所以,我试过cp -vR ./old/*.TIF ./new并得到一个错误:

No such file file or dirrectory "./old/*.TIF"

我做错了什么?

iiS*_*our 14

为此使用查找 find . -name "*.TIF" -exec cp {} new \;

Sofind用于查找文件。该命令是说find文件从这里开始,文件.-name.tif记住 shell 扩展的双引号结束。所以查找所有tif文件很简单。

find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
Run Code Online (Sandbox Code Playgroud)

然后我们使用-exec在这种情况下对文件做一些事情,在目标目录中cp找到文件{}new后跟转义分号\;