Debian

Debian 9.3 - 解壓失敗,說文件不存在

  • January 8, 2018

我在 Debian 9.3 中執行了以下命令:

cd /usr/local/src
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

該文件下載得很好,但是,當我執行時:

tar -xzfv maldetect-current.tar.gz

我得到:

tar (child): v: Cannot open: No such file or directory tar (child):
Error is not recoverable: exiting now tar: Child returned status 2
tar: Error is not recoverable: exiting now

ls -la表明該文件確實存在:

/usr/local/src# ls -la
total 3144
drwxrwsr-x  2 root staff    4096 Jan  8 11:46 .
drwxrwsr-x 11 root staff    4096 Jan  8 11:40 ..
-rw-r--r--  1 root staff 1605546 Jul 14 04:45 maldetect-current.tar.gz

文件名應緊跟在 f 選項之後。

tar -xzvf maldetect-current.tar.gz

你陷入了陷阱。tar支持兩種格式的命令行選項,一種是帶破折號的常用格式,另一種是不帶破折號的傳統格式。它們在參數處理方面有所不同。

這裡:

tar -xzfv maldetect-current.tar.gz

的論點-fv,與所有其他工具一樣。

另一方面,這裡:

tar xzfv maldetect-current.tar.gz

to 的參數f取自下一個命令行參數,即您實際想要提供的文件名。

錯誤消息提到了它嘗試訪問的文件名,您可能只是錯過了它,因為v它很短。但是,通常有問題的文件會列在錯誤消息中。

GNU tar 手冊頁在“選項樣式”下提到了這一點:

在傳統風格中,第一個參數是一組選項字母,所有後續參數都為需要它們的選項提供參數。

在 UNIX 或短選項樣式中,每個選項字母都以單個破折號作為前綴,就像在其他命令行實用程序中一樣。如果選項接受參數,則參數緊隨其後,或者作為單獨的命令行字,或者緊跟在 option 之後

引用自:https://unix.stackexchange.com/questions/415560