すべての*.tif
ファイルを./oldから./newにコピーしようとしています。 ./oldにはさまざまなファイルを含む多くのサブディレクトリがあり、。/ newにはフォルダーツリーのないTIFファイルのみが必要です。だから、私はcp -vR ./old/*.TIF ./new
を試してみましたが、エラーが発生しました:
No such file file or dirrectory "./old/*.TIF"
私が間違っているのは何ですか?
このためにfindを使用しますfind . -name "*.TIF" -exec cp {} new \;
したがって、find
はファイルの検索に使用されます。コマンドは、ここから始まるfind
ファイル.
を示しています。ファイルの名前-name
は.tif
で終わります。シェル拡張の二重引用符を覚えておいてください。したがって、すべてのtif
ファイルを見つけるのは簡単です。
find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
次に、-exec
を使用してファイルを処理します。この場合、cp
はファイル{}
をターゲットディレクトリnew
に見つけ、その後にエスケープされたセミコロン\;
を続けます。
こんな感じになります。古いディレクトリを入力する必要があります:
cd old
cp -R *.tif ../new
古いディレクトリ(直接)には、.tifファイルがない可能性があります。
さらに、ファイルのリストを取得し、簡単なスクリプトを使用してそれらをコピーすることができます
find /old -type f | xargs grep *.tif
リストが表示されます
あなたは好きにすることができます
for i in `find /old -type f | xargs grep *.tif`
do
cp $i /new
done;