[英]How to find and delete resized Wordpress images if the original image was already deleted?
[英]mozcjpeg - optimize original image
我正在嘗試使用 mozcjpeg 優化 sample.jpg,但我希望它壓縮 sample.jpg,而不是創建另一個文件。
我運行這個命令:
mozcjpeg -quality 80 sample.jpg > sample.jpg
我得到
Empty input file
正確的做法是什么?
PS 我有一個每天運行一次的 bash 腳本來優化過去 24 小時內創建的圖像。
只需使用不同的輸出文件名,否則它會立即被覆蓋。
您正在讀取文件並同時覆蓋它。 相反,制作一個中間文件:
tmp_file="$(mktemp)"
mozcjpeg -quality 80 sample.jpg > "${tmp_file}"
mv "${tmp_file}" sample.jpg
anycmd foo.jpg > foo.jpg
理解為:
foo.jpg
進行寫入(覆蓋任何現有數據)。anycmd foo.jpg
。因此,在執行命令時,原始文件已經消失了。 你怎么能解決這個問題?
好吧,您可以按照其他答案中的建議創建一個臨時文件。
或者,您可以使用sponge
。 它是moreutils包的一部分。
$ whatis sponge
sponge (1) - soak up standard input and write to a file
該工具允許您編寫:
mozcjpeg -quality 80 sample.jpg | sponge sample.jpg
它起作用是因為sponge
將首先讀取所有標准輸入(在內存中),並且只有在標准輸入到達 EOF 后才會打開文件進行寫入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.