特定の画像のサイズを変更するには、次のコマンドを使用します。
mogrify -geometry x50 my_image.png
新しい印刷画面を撮るたびに、画像はマイ~/Pictures
フォルダに保存されます。私のPictures
フォルダを監視し、画像の新しい縮小版を自分のコンピュータの別のフォルダにコピーする作業を実行するスクリプトを作成したいと思います。たとえば~/.icons/
...
この問題に対する解決策が利用可能であることを知っていますが、cron
定期的に対策を講じたくありません。ログなどに基づいてフォルダの違いを把握できるコマンド(またはスクリプト)が必要です。それは可能ですか?どうすればいいですか?
答え1
私は私の問題を解決するためにこの機能的なスクリプトを作成しましたinotify-tools
。それで、他の人に役立つ場合に備えてここに残しておきます。
#!/bin/bash
watchedFolder=~/Pictures
iconsFolder=~/.icons
imageGeometry=100
while [ true ]
do
fileName=$(inotifywait -q -e create --format "%f" "$watchedFolder")
if ! [ -d $iconsFolder ]; then mkdir -p $iconsFolder ; fi
sleep 1s
cp $watchedFolder/"$fileName" $iconsFolder
mogrify -geometry x$imageGeometry $iconsFolder/"$fileName"
done
たとえば、保存し~/automatedIcons.bash
て実行可能にしますchmod +x ~/automatedIcons.bash
。これで実行するとすでに機能し、Pictures
フォルダ内に作成されたすべての新しい写真を新しい場所にコピーしてサイズを変更します。起動時に実行するには、crontab -e
上記のスクリプトの場所を含む行を使用して作成します@reboot /home/myUserName/automatedIcons.bash
。
これは単に関数スクリプトです。そのため、仕組みを改善するための提案がある場合は、コメントに自由に書き留めてください。
答え2
この質問(または同様の質問)が次の場所に投稿されました。スタックオーバーフロー
デフォルトでは、以下を使用する必要があります。イノティファイツール