我正在尝试将所有*.tif
文件从 ./old 复制到 ./new。在 ./old 中我有很多包含不同文件的子目录,而在 ./new 中我只需要 TIF 文件,不需要文件夹树。
所以我尝试了
cp -vR ./old/*.TIF ./new`
但出现错误:
No such file or directory "./old/*.TIF"
我做错了什么?
答案1
使用 find 来查找find . -name "*.TIF" -exec cp {} new \;
Sofind
用于查找文件。该命令表示find
从此处开始的文件.
,文件名-name
以 结尾,.tif
请记住双引号以进行 shell 扩展。因此,查找所有tif
文件非常简单。
find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
然后我们使用-exec
对文件进行一些操作,在本例中cp
找到文件{}
到目标目录,new
后跟转义的分号\;
答案2
它应该是这样的。你必须进入旧目录:
cd old
cp -R *.tif ../new
答案3
.tif
您的目录中可能没有任何文件old
。
此外,您可以获取文件列表并使用简单的脚本复制它们:
find /old -type f | xargs grep *.tif
会给你一份清单。
你可以这样做:
for i in `find /old -type f | xargs grep *.tif`
do
cp $i /new
done;