Tar
tar create:如何避免在終端中顯示“tar:從成員名稱中刪除前導 `/’”消息?
關於
tar
命令如果執行命令:
tar -czf numbers.tar.gz numbers
該
numbers.tar.gz
文件是從numbers
- 在目前目錄中創建的但出於腳本目的- 通過測試 - 如果執行:
tar -czf ~/numbers.tar.gz /home/username/numbers tar -czf /home/username/numbers.tar.gz /home/username/numbers
這兩個命令都按預期工作,但總是出現以下消息:
- “tar:從成員名稱中刪除前導 `/’”
發生這種情況是因為至少有一條路徑 - 在這種情況下,兩者都具有/包含該
/
字元。我知道這不是錯誤,但很好奇問題
- 如何避免在終端中顯示“tar:從成員名稱中刪除前導 `/’”消息?
我假設它是資訊或警告消息,出於腳本目的,需要它定義
tar.gz
要創建的路徑和directory
要壓縮的源 - 我不想在終端中看到該消息。有可能嗎?有什麼選擇?
將絕對路徑作為存檔成員是一個壞主意。這就是為什麼 GNU在預設情況下
tar
實際上刪除了首字母/
(從存檔成員名稱和硬連結目標中,如果有的話)。如果您很高興進行
tar
剝離但想刪除警告,您可以自己進行剝離:tar -C / -czf ~/numbers.tar.gz home/username/numbers
或者:
tar -C /home/username -czf ~/numbers.tar.gz numbers
對於存檔成員,
numbers/file
而不是home/username/numbers/file
.您可以告訴
tar
不要使用--absolute-names
/進行剝離,-P
在這種情況下,您將/home/username/numbers/file
成為存檔成員。在提取時,大多數
tar
實現也會/
預設去除該前導作為安全措施。如果您從/tmp/test
目錄中提取它,文件將被提取為/tmp/test/home/username/numbers/file
它們是否儲存在存檔中為home/username/numbers/file
or/home/username/numbers/file
,除非您再次傳遞-P
/--absolute-names
選項(儘管如果您確實想要路徑,則執行 acd /
或傳遞 a-C /
會更有意義被解釋為相對於根,與絕對路徑相同)。