我经常使用tar命令,对它非常熟悉。但是,我尝试使用date命令创建一个归档文件来命名该归档文件,但它抛出了一个错误,表明它无法打开该文件,这很奇怪,因为我并不是要打开该文件,而是要创建它。
下面是目录、代码和错误的副本:
@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命令设置为一个变量,得到类似的结果。
发布于 2017-09-06 01:46:19
如果您查看错误消息,您会看到
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外部创建一个目录,如下所示
mkdir -p archive.09/05如果不需要子目录,则不能在文件名中使用/字符。为date命令尝试一种不同的格式;一个常见的选项是+%F,因为它会生成文件名,如果按文本排序,文件名的顺序仍然正确。
发布于 2017-09-06 01:51:43
我强烈建议您阅读date手册页并检查格式选项。
正如其他人所建议的,问题出在date输出的格式上
$ date '+%D'
09/05/17由于Unix的典型行为,您不能创建名称中带有斜杠的文件。相反,您应该尝试像这样的东西
$ date '+%m-%d-%Y'
09-05-2017以防您想要保留与%D相同的格式。
发布于 2017-09-06 01:42:44
日期打印出斜杠,并将其视为文件夹路径。使用破折号。
https://stackoverflow.com/questions/46060578
复制相似问题