web-dev-qa-db-ja.com

Linuxでファイル名に現在の日付を与える最も簡単な方法

ファイルやディレクトリに現在の日付を含む名前を付けたい場合がたくさんあります。ほとんどの場合、後で何かを台無しにした場合に備えて、時々取るのは一時的なバックアップです。

また、エクスポートされたファイル、たとえばデータベースは常に同じ名前になるため、古い一時バックアップを上書きしたくないので、最善の解決策はそれに日付を付けることです。また、現在の日付と下線を入力するのは非常にうんざりしていますが、時計にカーソルを合わせて日付を確認するのはさらにうんざりしています。

それで、現在の日付を貼り付けるためのショートカットが組み込まれているかどうか疑問に思っていますか?そうでない場合は、作成できますか?ファイル/フォルダに現在の日付を簡単に指定できるようにする最も簡単な方法は何ですか?

3
user339781

シェルでは、コマンド置換を使用します。

touch "$(date)"

または、フォーマット付き

touch "$(date +%Y-%m-%d_%H.%M.%S)"

長いコマンドをエイリアスまたは関数に保持できます

alias ts='date +%Y-%m-%d_%H.%M.%S'
touch "$(ts)"
7
choroba

Chorobaのアドバイスに従って、Thunarのコンテキストメニューで カスタムアクション を定義できます。

3
SΛLVΘ

ファイルを追加する方法は複数ありました。

から stackoverflow

  1. 日付を文字列として取得する

これはとても簡単です。 +オプションを指定してdateコマンドを使用するだけです。バックティックを使用して、変数の値をキャプチャできます。

$ DATE=`date +%d-%m-%y`

日付の詳細にあるさまざまな%オプションを使用して、日付形式を変更できます manページ

  1. ファイルを名前と拡張子に分割します。

これは少し注意が必要です。たった1つになると思ったら。ファイル名では、cutwithを使用できます。区切り文字として。

$ NAME=`echo $FILE | cut -d. -f1
$ EXT=`echo $FILE | cut -d. -f2`

ただし、これは複数では機能しません。ファイル名に。 bashを使用している場合(おそらくそうですが)、変数展開を行うときにパターンを一致させることができるbashマジックを使用できます。

$ NAME=${FILE%.*}
$ EXT=${FILE#*.}

それらをまとめると、次のようになります。

$ FILE=somefile.txt             
$ NAME=${FILE%.*}
$ EXT=${FILE#*.} 
$ DATE=`date +%d-%m-%y`         
$ NEWFILE=${NAME}_${DATE}.${EXT}
$ echo $NEWFILE                 
somefile_05-10-15.txt

また、読みやすさについてあまり心配していない場合は、すべての作業を1行で行います(日付形式が異なります)。

$ FILE=somefile.txt  
$ FILE=${FILE%.*}_`date +%d%b%y`.${FILE#*.}
$ echo $FILE                                 
somefile_05oct15.txt

他の方法は次のようになります:

$日付水曜日10月16日19:20:51EDT 2013

そのようなファイル名が本当に必要な場合は、その文字列を引用符で囲む必要があります。

$ touch "foo.backup。$(date)"

$ ll foo * -rw-rw-r-- 1 saml saml 0 Oct 16 19:22 foo.backup.Wed Oct 16 19:22:29 EDT 2013

あなたはおそらく、追加される別の文字列を考えているでしょうが、私の推測です。私は通常次のようなものを使用します:

$ touch "foo.backup.$(date +%F_%R)"
$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:25 foo.backup.2013-10-16_19:25

日付と時刻の出力に関するその他のフォーマットコードについては、日付のマニュアルページを参照してください。追加のフォーマット

マニュアルページを参照して完全に制御したい場合は、次のようなことができます。

$ date +"%Y%m%d"
20131016

$ date +"%Y-%m-%d"
2013-10-16

$ date +"%Y%m%d_%H%M%S"
20131016_193655