2017-09-05 71 views
3

我使用tar命令很多,非常熟悉它。但是,我嘗試使用date命令創建歸檔文件來命名歸檔文件,並且它導致無法打開文件的錯誤,這很奇怪,因爲我沒有試圖打開文件但創建它。嘗試使用日期命令創建歸檔文件時出現Tar命令錯誤

這裏的目錄,代碼的副本,並且錯誤:

@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/ 
[email protected] /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 
[email protected] /media/VideoCam/Test $ 

我已經嘗試了很多不同的串連,不管有沒有行情,切換了命令選項(zcvf)的順序,等等。如果我遺漏了日期命令並且給它一個名字,例如archive.tar.gz,它執行完美,但引入日期命令導致錯誤。我也嘗試將date命令設置爲具有類似結果的變量。

+1

請修復格式。 – luckytaxi

+0

用四個空格前綴代碼/數據。請看[編輯幫助](http://stackoverflow.com/editing-help)。 – Cyrus

+0

'/'在文件名中是不允許的。 – Cyrus

回答

0

該日期是裁剪斜線,它將其視爲文件夾路徑。使用破折號。

0

如果你看一下錯誤信息,您看到

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,因爲它會生成文件名,如果按文本排序,文件名仍然會以正確的順序排列。

+0

哇,謝謝大家如此迅速地回答了這個問題!雖然我一直在使用Linux很長一段時間,但即使是最簡單的編碼/腳本編程,我仍然很不高興。答案似乎很明顯,但它完全避開了我。另外,根據@Cyrus,我將檢查編輯幫助。再次感謝! – neolithic

1

我強烈建議您閱讀date手冊頁並檢查格式選項。

,因爲它是被別人提出的問題是與date輸出

$ date '+%D' 
09/05/17 

您不能創建因爲Unix的典型行爲在名稱斜線的文件的格式。這萬一要保留相同的格式%D而應該嘗試像

$ date '+%m-%d-%Y' 
09-05-2017 

相關問題