Powershell 中的 tar.exe 表示如果使用尾随反斜杠指定目录则无法找到目录

问题描述 投票:0回答:2

我正在尝试在 Windows 11 上使用 tar.exe 创建目录的 tarball。当我在 PowerShell 或 cmd 中运行时:

tar -c -f file.tar directory\

我收到错误

tar.exe: OCESSORS=24: Couldn't visit directory: No such file or directory

它无法访问的目录名称在运行之间有所不同,但它似乎总是获取环境变量的某些部分(例如 env.PATH 等),有时目录名称会粘在其末尾。

如果我省略结尾的反斜杠,它似乎可以工作:

tar -c -f file.tar directory

但我想知道问题是什么,特别是因为 PowerShell 自动完成功能将尾部反斜杠添加到目录中。我已经读过尾随反斜杠可能会在 PowerShell 中导致问题,但似乎不适用于这种情况,因为目录名称中没有特殊字符,而且无论如何我不明白它是如何抓取运行时的随机环境变量。

powershell cmd tar
2个回答
1
投票
cmd.exe

会话中看到同样的问题):

与 Unix 实现不同,Windows 

tar

实现,

tar.exe
似乎不允许使用可选的尾随路径分隔符,即使目标是
目录
\
/
都不被接受)。
但是,至少对于版本 

bsdtar 3.5.2

(根据

tar --version
的报告以及在 Windows 11 22H2 上找到的),这似乎只是一个
 外观问题

尽管出现错误消息,该命令
    有效
不幸的是,这与 PowerShell 的制表符完成冲突,后者总是在完成
目录

名称时附加路径分隔符。 解决方案是简单地在完成后手动将其删除。

另外,仅在
Windows PowerShell

中(自 PowerShell (Core) 7+ 中已修复),调用 any 外部程序时,尾随

\
会导致参数带有空格出现问题:

请参阅
    此答案
  • 了解详细信息。

0
投票
/ \

排除在外。 输入您的路径/目录/位置,如下所示:

C: SomeFolderX SomeFileinSomeFolderX

.

然后,如果你想要花哨并焦油一些东西--> 

ziptard

位于位置-->

:..here..:
并且想要将焦油存储在位置-->
:..there..:
;你可以尝试以下方法;

tar -cvzf ziptard -C :..here..: -C:..there..:

在压缩 10gb 文件夹时添加了此内容:)

感谢您的意见。

© www.soinside.com 2019 - 2024. All rights reserved.