Tar

tar –from-files,不解釋文件名開頭的連字元

  • October 7, 2021

我們在 CentOS 7.9 上使用 tar 1.26,我正在嘗試解壓縮其中包含以連字元開頭的文件的存檔。

我告訴 tar--files-from我要提取哪些文件,因為我不想提取所有內容。

為此,我有filelist.txt以下內容的文件

-myfile.txt

呼叫 tar liketar -xmf mytar.tar --no-wildcards --files-from filelist.txt會導致 tar 出錯並出現以下錯誤

tar: invalid option -- 'y'

這是因為 tar 將起始連字元解釋為 tar 的參數(我假設)

我已經添加--no-wildcards以禁用模式匹配。

是否有可能禁用此行為或更好地告訴 tar 從filelist.txt字面上獲取每個條目而不嘗試匹配/解釋任何內容?

如果可以選擇升級到 GNU 1.29 或更高版本tar,則該--verbatim-files-from開關提供了您似乎正在尋找的功能。引用手冊

--verbatim-files-from

將從文件列表中獲得的每一行視為文件名,即使它以破折號開頭。文件列表隨--files-from( -T) 選項提供。預設行為是處理文件列表中提供的名稱,就好像它們是在命令行中鍵入的一樣,即任何以破折號開頭的名稱都被視為tar選項。該--verbatim-files-from選項禁用此行為。

不幸的是,在 GNU 1.26--verbatim-files-from中不可用。tar

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