MediaWikiイメージディレクトリ内のすべてのPNGを自動的に最適化するスクリプトをどのように作成しますか?

MediaWikiイメージディレクトリ内のすべてのPNGを自動的に最適化するスクリプトをどのように作成しますか?

images/私は64ビットDebian 8.1 VirtualBoxシステムにMediaWiki 1.25.2をインストールし、そのインストールから自分のDropBoxにディレクトリをアップロードできるようにしたいと思います。私は薄暗い人なので、optipngDropBoxがいっぱいで、より多くのストレージスペースを支払う必要がないように、イメージディレクトリのPNGを最適化してイメージディレクトリのサイズを最小限に抑えようとしています。私のWikiには現在私がアップロードした182個のPNGがあります(そしてwikiの元のPNGとSVGのサムネイルである100以上の他のサムネイルを含む)。したがって、optipng -o7 <filename>これを手動で実行するのは非常に退屈です。

だからここに尋ねたいです。このタスクを自動的に実行するようにbashスクリプトをどのように書くことができますか?今、私はこれを行う方法についていくつかのパズルを知っています。たとえば、プログラムがfind指定された場所に指定されたファイル拡張子を持つファイルのリストを生成できることがわかります(たとえば、すべてのファイルがPNGとしてランダムにリストされているディレクトリsudo find . -type f -name "*.png"で実行されます)。しかし、そのプログラムを使用して、そのディレクトリに関連するすべてのファイル名を含むテキストファイル(たとえば)を作成する方法がわかりません。また、テキストファイルにリストされているPNGを最適化する方法もわかりません。images//var/lib/mediawiki/imagesf/f1/Frugalware_Linux_screenshot.pngoptipng

ベストアンサー1

findここで使用してください:

find (...your filters ...) -exec optipng -o7 '{}' +

できるだけ+多くの結果を引数として使用しようとすることに注意してください。プログラムは複数のファイルを引数として受け入れるので大丈夫です。これはコマンドの最後のパラメータである場合にのみ機能します。その他のオプションfindoptipng+-exec

find (...filters...) -exec optipng -o7 '{}' \;

各結果は一度だけ実行されるため、optipng速度がはるかに遅くなります。

注:{}inは、コマンドを実行できるfind検索結果のファイル名を表します。-exec

おすすめ記事