Linux如何在包含
如何在包含:
和@
的文件名上避免“遠端” tar
我正在嘗試使用
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
.