ウェブサイト検索

Linuxでスクリーンショットの名前を変更する方法


多くのデスクトップLinuxシステムは、スクリーンショットを次のような名前で保存します

Screenshot from 2020-11-29 18-57-51.png

多くの場合、実際に必要だったのは、ファイルの名前をもっと明確なもの、例えば webinar1.png や webinar2.png といったものに変更することでした。幸いなことに、たくさんのファイルの名前を変更するのはLinuxのコマンドライン上で非常に簡単です。

Bashシェルは非常に多用途であり、値を評価し変数を展開するさまざまな方法を提供します。素晴らしい評価の1つは算術評価です。この評価を実行するには、算術文を次のように囲みます。

$((

そして

))

評価には、変数の展開を含めることもできます。

$sum

値に解決するために。しかし便宜上、リストされた任意のBash変数は

$((

そして

))

自動的に拡張されます。例えば、変数countを1だけ増やしたい場合、次のように入力できます:

count=$(( count + 1 ))

これはタイプするのと同じです:

count=$(( $count + 1 ))

算術展開は、他のプログラミング言語で見られるのと同じ演算子をサポートしています。加算と減算には+と-を、乗算と除算には*と/を、余りには%を使用します。また、変数の値をインクリメントおよびデクリメントするために++と--を使用することもできます。Bashのmanページを確認し、算術評価のセクションにスクロールダウンすると、サポートされている演算子の完全なリストとその優先順位が表示されます。

すべてのスクリーンショットの名前を変更するために、この1行のBashコマンドを書く必要がありました:

n=1; for f in Screenshot*.png; do mv -v "$f" webinar$n.png; n=$(( n + 1 )); done

しかし、これは何をするのですか?

コマンドの最初の部分であるn=1は、変数nを1に初期化します。

それから、私は Screenshot で始まり、.png 拡張子で終わるすべてのファイルに対処するために for ループを使用します。これらは通常、私が最初のウェビナー中にキャプチャしたすべてのスクリーンショットです。もし、もっと正確にする必要があれば、そのファイル指定に日付を含めるかもしれません。たとえば、 Screenshot from 2020-11-29*.png のように。バックスラッシュは、ファイル名のスペースを保持するためのリテラルエスケープです。

forループの各イテレーションで、ファイル名がf変数に保存されます。したがって、mvコマンドmv -v "$f" webinar$n.pngは、各ファイルを私の好みのファイル名にリネームします。たとえば、webinar1.png、webinar2.pngなどです。Screenshot from YYYY-MM-DD hh-mm-ss.png内のスペースが私のmvコマンドに問題を引き起こさないように、$f変数展開の周りに引用符が必要です。もしmv: target 'webinar1.png' is not a directoryのようなエラーが出た場合は、$fの周りに引用符を付けていない可能性があります。

最後に、n変数の値を増加させて、ループの次の反復の準備をします。算術拡張n=$ (( n + 1 ))は、n変数を1増加させます。

関連記事: