私のファイル名は日付形式です。例:20160920-A.cc1。毎日私は現在の日付(yyyymmdd-A.cc1)を含む他のファイルを受け取ります。ロードされたファイルと同じ名前とファイルのサフィックスで日付とタイムスタンプを使用してこのファイルをアーカイブする必要があります。
したがって、私の入力は 20160920-A.cc1
出力と同じように別のフォルダに移動され、次のようになります。
20160920-A.cc1_20160920-hh:mm:ss
答え1
date
コマンドを詳しく知る必要があります。望むよりdate --help
。
tarball の使用のためにアーカイブするには、
tar czf filename_`date +%Y%m%d_%H_%M_%S`.tar.gz filename
つまり
tar czf 20160920-A.cc1_`date +%Y%m%d_%H_%M_%S`.tar.gz 20160920-A.cc1
コロンは:有効なファイル名ではないので、_hh:mm:ssの代わりにアンダースコアを使用してください。
答え2
dateコマンドを使用すると、問題が解決すると思います。
echo some fancy data for the file > $(date +"%Y%m%d")-A.cc1
cp $(date +"%Y%m%d")-A.cc1 <another folder path>/$(date +"%Y%m%d")-A.cc1_$(date +"%Y%m%d-%H:%M:%S")
別の作成日にファイルをコピーするには、次のコマンドを使用します。
cp {,<another path>/}20160919-A.cc1
mv <another path>/20160919-A.cc1{,_$(date +"%Y%m%d-%H:%M:%S")}
重要:複数のファイルをコピーするにはループを使用してください。
答え3
TerjasとKeoklaに感謝します。
私も以下の形式を試しました。しかし、それはその日にのみ適用されます。
mv 20160919-A.cc1 `date "+%Y%m%d"'-A.cc1_`date +%Y%m%d_%H_%M_%S`
私の結果は次のとおりです
20160920-A.cc1_2016_09_20_16:50:00
- 注:入力ファイルの特定の日付ではなく、現在の日付をプレフィックスとサフィックスとして使用してファイルを移動することを選択します。