可能的重复:
在文件名末尾重命名一堆带有修改日期时间戳的文件?
我想将文件从一个文件夹移动到另一个文件夹,并在文件名中附加时间戳。
例如,我在文件夹中有两个名为file1
和 的文件。file2
f1
我想将这些文件f2
作为文件名file1_22_jan_11:42
和file2_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
要复制somefile
到otherplace/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
。