2

いくつかのフォルダー階層があり、一部のフォルダーには画像があります。すべての画像を一覧表示し、指定された 1 つのフォルダーにコピーできるシェル スクリプトが必要です。一覧表示は重要ではありません。すべての画像をフォルダーにコピーしたいだけです。 ?

自分ができるということがわかっている

ls -R *.png

しかし、どうすればそれらすべてを 1 つのフォルダーにコピーできますか?

ありがとう!

4

2 に答える 2

6

更新: glenn jackmanが指摘しているように、これは私が提供した回答よりも少し効率的に使用できます。

file . -type f -name \*.png | xargs cp -t destination

説明については、この回答に続くglennのコメントを参照してください。


1つの方法は使用すること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 \;:これは何かをする部分です:見つかった(に置き換えられた{})そのような結果をそれぞれ、指定された宛先にコピーします。
于 2012-11-19T04:05:57.953 に答える