首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tar命令尝试使用date命令创建归档文件时抛出错误

Tar命令尝试使用date命令创建归档文件时抛出错误
EN

Stack Overflow用户
提问于 2017-09-06 01:40:16
回答 3查看 646关注 0票数 2

我经常使用tar命令,对它非常熟悉。但是,我尝试使用date命令创建一个归档文件来命名该归档文件,但它抛出了一个错误,表明它无法打开该文件,这很奇怪,因为我并不是要打开该文件,而是要创建它。

下面是目录、代码和错误的副本:

代码语言:javascript
复制
@MDG /media/VideoCam/Test $ ll
total 468
drwxr-xr-x 3 neo neo   4096 Sep  5 09:55 ./
drwxr-xr-x 4 neo neo 466944 Sep  4 21:54 ../
-rw-r--r-- 1 neo neo     45 Sep  5 08:52 1.jpg
-rw-rw-r-- 1 neo neo      0 Sep  5 08:41 1.mp4
-rw-r--r-- 1 neo neo      0 Sep  4 19:32 2.jpg
-rw-rw-r-- 1 neo neo      0 Sep  5 08:41 2.mp4
-rw-r--r-- 1 neo neo      0 Sep  4 19:32 3.jpg
-rw-r--r-- 1 neo neo      0 Sep  4 19:32 4.jpg
-rw-rw-r-- 1 neo neo      0 Sep  5 08:41 4.mp4
-rw-r--r-- 1 neo neo      0 Sep  4 19:32 5.jpg
-rw-rw-r-- 1 neo neo      0 Sep  5 08:41 5.mp4
-rw-r--r-- 1 neo neo      0 Sep  4 19:32 6.jpg
-rw-rw-r-- 1 neo neo      0 Sep  5 08:41 6.mp4
-rw-r--r-- 1 neo neo      0 Sep  4 19:32 7.jpg
-rw-rw-r-- 1 neo neo      0 Sep  5 08:41 7.mp4
-rw-r--r-- 1 neo neo      0 Sep  4 19:32 8.jpg
-rw-rw-r-- 1 neo neo      0 Sep  5 08:41 8.mp4
drwxr-xr-x 2 neo neo   4096 Sep  4 19:30 Archive/
neo@MDG /media/VideoCam/Test $ sudo tar -zcvf "archive.$(date '+%D').tar.gz" *.jpg
tar (child): archive.09/05/17.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
neo@MDG /media/VideoCam/Test $

我尝试了许多不同的连接,带引号和不带引号,切换命令选项的顺序(zcvf),等等。如果我省略了date命令,只给它一个名字,例如archive.tar.gz,它会很好地执行,但是引入date命令会导致错误。我还尝试将date命令设置为一个变量,得到类似的结果。

EN

回答 3

Stack Overflow用户

发布于 2017-09-06 01:46:19

如果您查看错误消息,您会看到

代码语言:javascript
复制
tar (child): archive.09/05/17.tar.gz: Cannot open: No such file or directory

这表示它正在尝试创建文件archive.09/05/17.tar.gz。即05目录中的17.tar.gz,位于archive.09目录中。

如果这是您真正想要的,那么您需要在tar外部创建一个目录,如下所示

代码语言:javascript
复制
mkdir -p archive.09/05

如果不需要子目录,则不能在文件名中使用/字符。为date命令尝试一种不同的格式;一个常见的选项是+%F,因为它会生成文件名,如果按文本排序,文件名的顺序仍然正确。

票数 1
EN

Stack Overflow用户

发布于 2017-09-06 01:51:43

我强烈建议您阅读date手册页并检查格式选项。

正如其他人所建议的,问题出在date输出的格式上

代码语言:javascript
复制
$ date '+%D'
09/05/17

由于Unix的典型行为,您不能创建名称中带有斜杠的文件。相反,您应该尝试像这样的东西

代码语言:javascript
复制
$ date '+%m-%d-%Y'
09-05-2017

以防您想要保留与%D相同的格式。

票数 1
EN

Stack Overflow用户

发布于 2017-09-06 01:42:44

日期打印出斜杠,并将其视为文件夹路径。使用破折号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46060578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档