复制文件并附加时间戳

布赖恩

我的脚本有两个问题,该脚本复制文件并为该名称添加时间戳。

cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%T")

上面添加了Test2作为文件名,但我希望它保留原始源文件的文件名(在本示例中为)Test

cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%r")

另一个问题是当我将%r时间戳记代码添加为时间戳代码时,出现错误,指出目标“ PM”不是目录。我正在尝试将时间戳记为12小时制。

吉勒斯“别再邪恶了”

您的问题之一是您在命令替换处省略了双引号,因此命令的输出date在空格处被分割。请参阅为什么我的Shell脚本会在空白或其他特殊字符上造成窒息?这是一个有效的命令:

cp -a /home/bpacheco/Test1 "/home/bpacheco/Test2-$(date +"%m-%d-%y-%r")"

如果要附加到原始文件名,则需要将其包含在变量中。

source=/home/bpacheco/Test1
cp -a -- "$source" "$source-$(date +"%m-%d-%y-%r")"

如果您使用的是bash,则可以改用大括号扩展。

cp -a /home/bpacheco/Test1{,"-$(date +"%m-%d-%y-%r")"}

如果要将文件复制到另一个目录,并将时间戳添加到原始文件名,则可以通过以下方式进行:${source##*/} 扩展为的值,source不包括最后一个部分/(它会删除与模式匹配的最长前缀)*/):

source=/home/bpacheco/Test1
cp -a -- "$source" "/destination/directory/${source##*/}-$(date +"%m-%d-%y-%r")"

如果Test1是目录,则以递归方式复制它,并且目录中的文件保留其名称:只有顶级目录才会附加时间戳(例如Test1/foo,复制到Test1-05-10-15-07:19:42 PM)。如果要将时间戳添加到所有文件名,则是另一个问题。

您选择的时间戳格式是一个坏主意:人类难以阅读且难以排序。您应该使用一种易于阅读且易于排序的格式,即各部分的重要性降序:年,月,日,时,分,秒,日期部分与时间部分之间应分开。

cp -a /home/bpacheco/Test1 "/home/bpacheco/Test2-$(date +"%Y%m%d-%H%M%S")"
cp -a /home/bpacheco/Test1 "/home/bpacheco/Test2-$(date +"%Y-%m-%dT%H%M%S%:z")"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

压缩文件时附加时间戳

来自分类Dev

附加时间戳并移动文件 C#

来自分类Dev

使用通配符复制文件并添加时间戳

来自分类Dev

根据文件名中的时间戳值复制文件

来自分类Dev

复制文件并保留与原始文件相同的时间戳

来自分类Dev

如何仅SCP文件的时间戳而不复制文件的内容?

来自分类Dev

如何在文件名后附加时间戳?

来自分类Dev

将时间戳附加到日志文件的名称

来自分类Dev

将时间戳附加到功能中的输出文件

来自分类Dev

Shell脚本:复制多个文件并添加时间戳

来自分类Dev

复制到USB驱动器的文件的时间戳

来自分类Dev

Linux Bash:按时间戳移动/复制文件/目录

来自分类Dev

ffmpeg复制保存时间戳

来自分类Dev

将文件从一个目录复制到另一个目录并附加带有时间戳的新文件,而不是在 Java 中覆盖

来自分类Dev

根据时间戳将文件复制到批处理文件中

来自分类Dev

Rsync仅复制更改的文件;忽略文件修改时间戳

来自分类Dev

通过后台运行命令在文件名上附加当前时间戳

来自分类Dev

通过后台运行命令在文件名上附加当前时间戳

来自分类Dev

将可读的上次编辑时间戳附加到文件名

来自分类Dev

批量重命名带有附加日期和时间戳的多个文件

来自分类Dev

更新附加/分离口才关系的时间戳

来自分类Dev

更新附加/分离口才关系的时间戳

来自分类Dev

回显时间戳附加恼人的“ ^ @”

来自分类Dev

在Azure管道复制文件任务中传递带有日期和时间戳的目录名称

来自分类Dev

为什么在Windows中复制或移动文件时时间戳会更改?

来自分类Dev

为什么某些文件夹会以错误的时间戳进行复制?

来自分类Dev

文件复制时间变化

来自分类Dev

从文件列表输出时间戳

来自分类Dev

减少文件中的时间戳

Related 相关文章

  1. 1

    压缩文件时附加时间戳

  2. 2

    附加时间戳并移动文件 C#

  3. 3

    使用通配符复制文件并添加时间戳

  4. 4

    根据文件名中的时间戳值复制文件

  5. 5

    复制文件并保留与原始文件相同的时间戳

  6. 6

    如何仅SCP文件的时间戳而不复制文件的内容?

  7. 7

    如何在文件名后附加时间戳?

  8. 8

    将时间戳附加到日志文件的名称

  9. 9

    将时间戳附加到功能中的输出文件

  10. 10

    Shell脚本:复制多个文件并添加时间戳

  11. 11

    复制到USB驱动器的文件的时间戳

  12. 12

    Linux Bash:按时间戳移动/复制文件/目录

  13. 13

    ffmpeg复制保存时间戳

  14. 14

    将文件从一个目录复制到另一个目录并附加带有时间戳的新文件,而不是在 Java 中覆盖

  15. 15

    根据时间戳将文件复制到批处理文件中

  16. 16

    Rsync仅复制更改的文件;忽略文件修改时间戳

  17. 17

    通过后台运行命令在文件名上附加当前时间戳

  18. 18

    通过后台运行命令在文件名上附加当前时间戳

  19. 19

    将可读的上次编辑时间戳附加到文件名

  20. 20

    批量重命名带有附加日期和时间戳的多个文件

  21. 21

    更新附加/分离口才关系的时间戳

  22. 22

    更新附加/分离口才关系的时间戳

  23. 23

    回显时间戳附加恼人的“ ^ @”

  24. 24

    在Azure管道复制文件任务中传递带有日期和时间戳的目录名称

  25. 25

    为什么在Windows中复制或移动文件时时间戳会更改?

  26. 26

    为什么某些文件夹会以错误的时间戳进行复制?

  27. 27

    文件复制时间变化

  28. 28

    从文件列表输出时间戳

  29. 29

    减少文件中的时间戳

热门标签

归档