如何将文件从一个文件夹移动到另一个文件夹并在名称后附加时间戳?

如何将文件从一个文件夹移动到另一个文件夹并在名称后附加时间戳?

可能的重复:
在文件名末尾重命名一堆带有修改日期时间戳的文件?

我想将文件从一个文件夹移动到另一个文件夹,并在文件名中附加时间戳。

例如,我在文件夹中有两个名为file1和 的文件。file2f1

我想将这些文件f2作为文件名file1_22_jan_11:42file2_22_jan_11:42.

答案1

如果该时间戳是文件的修改时间,则使用 GNU find 和 xargs,您可以执行以下操作:

find f1 -maxdepth 1 -mindepth 1 -printf '%p\0f2/%f_%Td_%Tb_%TH:%TM\0' |
  xargs -r0n2 echo mv

echo并在高兴时移除。

答案2

要复制somefileotherplace/somefile_附加修改日期(例如,2012_12_06):

cp somefile otherplace/somefile_`stat --printf=%y somefile | sed -e 's/ .*//'`

如果你把它放在脚本中可能是最简单的:

#!/bin/bash

suffix=_`stat --printf=%y $1 | sed -e 's/ .*//'`
cp $1 $2/$1_$suffix

将其命名为“mycp”,您可以执行以下操作:

mycp somefile otherplace

有关统计信息,请参阅man stat

相关内容