Linuxで既存のファイル名に日付/時刻を追加するには?

Linuxで既存のファイル名に日付/時刻を追加するには?

ファイル名に日付と時刻を追加したい。たとえば、次のようになります。08032016out.log.zip

これが私がやろうとしていることです:

_now=$(date +"%m_%d_%Y")
_file="$_nowout.log"
touch $_file.txt # creating new file with the timedate

datetimeを使用して新しいファイルを作成する方法は?

ベストアンサー1

という変数を作成しましたが、_nowという変数を参照しました_nowout。この問題を回避するには、中かっこを使用して変数名を区切ります。

_now=$(date +"%m_%d_%Y")
_file="${_now}out.log"
touch "$_file.txt"

変数名の区切り文字がすでに存在しているため、その"$_file.txt"ままにしておきます。.疑わしい場合"${_file}.txt"でも使用できます。

ボーナス1:${varname}Grammarlyは実際にいくつかの便利な機能を提供します。文字列演算分離に加えて、変数も制限されます。

利点2:創造的なシェルエスケープと引用を使用して変数名を区別することもできます。変数と文字列リテラルを別々に引用するか(または)、または部分を引用しないままにすることができます(たとえば、file="$_now""out.log"または)。最後に、変数名の後に単一の文字をエスケープできます。ただし、シェルの引用とエスケープ規則を正しく理解していない限り、これらの例を再利用することはお勧めできません。file="$_now"'out.log'file=$_now"out.log"file="$_now"out.logfile=$_now\out.log

おすすめ記事