如何避免对包含“:”和“@”的文件名进行“远程”tar

如何避免对包含“:”和“@”的文件名进行“远程”tar

tar -xvf我正在尝试使用格式(其中 * 是任何单词字符)*@*@*@*.tar.gz 来提取 tarball ,但我认为 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 中不同)。

答案1

问题是冒号,而不是 at 符号。使用--force-local

相关内容