linux - 如何使用新名称制作文件的副本,并在文件名中包含原始文件的时间戳?

标签 linux bash unix scripting

编写一个 bash 脚本,将文件复制到新副本具有相同名称的目录中,但在文件名后附加时间戳(在扩展名之前)。

我怎样才能实现这个目标?

最佳答案

要将文件本身的时间戳插入到原始文件名中,并在目标文件中保留该时间戳,请在 GNU 环境中执行以下操作:

file="/some/dir/path-to-file.xxx";
cp -p "$file" "${file%.*}-$(date -r"$file" '+%Y%m%d-%H%M%S').${file##*.}"

在混合中添加正确使用 basename(1) 命令将允许您将文件复制到不同的目录中。

在 GNU/Linux 环境之外执行此操作更具挑战性,您必须开始访问 awk、perl、python 甚至 php 等语言来替换 date -r 命令。

关于linux - 如何使用新名称制作文件的副本,并在文件名中包含原始文件的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38554000/

相关文章:

c++ - 不能在 linux mint 中使用 SOIL

linux - 将 grep 结果保存到远程机器上的文件中

python - 如何使用 shell 脚本(和 makefile?)执行 python 程序

bash 遍历除给定数字以外的数字列表

linux - 有没有办法让 shell 在脚本中间变得交互?

linux - 如何使用 df 命令查找可用和已用内存总量

python - 从源代码构建 GEOS 并指向正确的 Python 版本

linux - Bash 脚本导出文件名到变量

c - Longjmp 超出信号处理程序?

c - UNIX 重定向编程问题