将相同的时间戳附加到多个文件名

Geo*_*nes 2 shell date filenames timestamps variable

我有几个文件,我每小时 ftp。接收系统需要有某种标识符,它们来自同一批次,所以我想在文件名后附加一个时间戳。仅此一项就相当容易,但由于我希望每个文件具有相同的时间戳(因此它可以用作批处理标识符),我无法弄清楚如何做到这一点。

所以我有:

file1.txt
file2.txt
file3.txt
Run Code Online (Sandbox Code Playgroud)

我想要:

file1_20141110184303.txt
file2_20141110184303.txt
file3_20141110184303.txt
Run Code Online (Sandbox Code Playgroud)

date +%Y%m%d%H%M%S在第一次使用之后的任何使用显然都会导致以秒为单位的不同值,所以我希望将第一个时间戳附加到剩余的文件中。

jim*_*mij 5

只需将 的值存储date +%Y%m%d%H%M%S在变量中:

x=$(date +%Y%m%d%H%M%S)
Run Code Online (Sandbox Code Playgroud)

后来

mv file1 file1_$x.txt
mv file2 file2_$x.txt
...
Run Code Online (Sandbox Code Playgroud)

或在所有*.txt文件的循环中

for file in *.txt; do echo mv "$file" "${file%.txt}"_$x.txt; done
Run Code Online (Sandbox Code Playgroud)

echo如果您对屏幕上看到的内容感到满意,请删除)