Linux

如何在包含:@的文件名上避免“遠端” tar

  • February 20, 2022

我正在嘗試使用tar -xvf格式(其中 * 是任何單詞字元)@@@.tar.gz 提取壓縮包,但我認為 tar 正在嘗試在遠端位置查找文件。我得到的錯誤是命令tar -xzvf tasf423@2012-02-22\@00:03:04\@ja41nf.tar.gz

tar (child): Cannot connect to 2012-02-22@00: resolve failed

我嘗試使用反斜杠來轉義它,甚至嘗試用 %40 替換 @ 符號,但這似乎都不起作用。有沒有辦法使用名稱中帶有 @ 的 tar 命令提取 tarball?

另一個例子:

也許這個例子更好地說明了這個問題:

# tar czvf 2022-02-10-00\:04.tar.gz 2022-02-10-00\:04
2022-02-10-00:04/
2022-02-10-00:04/dmesg.txt
tar (child): Cannot connect to 2022-02-10-00: resolve failed
2022-02-10-00:04/vmcore
tar: 2022-02-10-00:04.tar.gz: Wrote only 2048 of 10240 bytes
tar: Child returned status 128
tar: Error is not recoverable: exiting now

注意:冒號 ( :) 不必轉義;Bash 的文件名完成程式碼就是這樣做的。在 UNIX:中不被視為“邪惡”字元(就像在 Windows 中一樣)。

問題是冒號,而不是 at 符號。使用--force-local.

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