web-dev-qa-db-ja.com

複数のファイル名に同じタイムスタンプを追加する

1時間ごとにftpするファイルがいくつかあります。受信システムには、同じバッチから取得した何らかの識別子が必要なので、ファイル名にタイムスタンプを追加したいと思います。それだけでもかなり簡単ですが、各ファイルに同じタイムスタンプを付けたいので(バッチ識別子として機能できるように)、これを行う方法がわかりません。

ので、私は持っています:

file1.txt
file2.txt
file3.txt

そして私は持っていたい:

file1_20141110184303.txt
file2_20141110184303.txt
file3_20141110184303.txt

最初の使用後にdate +%Y%m%d%H%M%Sを使用すると、明らかに秒単位で異なる値になるため、残りのファイルに最初のタイムスタンプを追加したいと思います。

2
George Jones

date +%Y%m%d%H%M%Sの値を変数に格納するだけです。

x=$(date +%Y%m%d%H%M%S)

そして後で

mv file1 file1_$x.txt
mv file2 file2_$x.txt
...

またはすべての*.txtファイルのループ内

for file in *.txt; do echo mv "$file" "${file%.txt}"_$x.txt; done

(画面に表示される内容に満足している場合は、echoを削除してください)

4
jimmij