我有一个使用7z -tzip -aoa的归档脚本,它在unix上运行并且工作正常。但是,当通过Autosys运行时,尝试将第二个文件存档到现有存档时总是会失败。错误是:
7-Zip 9.20版权所有(c)1999-2010 Igor Pavlov 2010-11-18 p7zip版本9.20(locale = C,Utf16 = off,HugeFiles = on,8个CPU)
扫描
更新档案 20150807.zip
错误: 7-Zip无法打开文件 20150807.zip.tmp 许可被拒绝
它没有告诉我它对该tmp文件的权限,所以我不知道在哪里看。我已将所有权限设置为我认为可能用于777的任何文件夹,但问题仍然存在。不使用Autosys时效果很好。
我试图在网上搜索一段时间,但无法找到任何帮助,所以我在这里。 我的第一个问题是当我尝试使用上下文菜单压缩C://中的文件夹时(7-zip>添加到" xyz.zip"),我收到错误:" Access被拒绝。 7-zip无法打开文件" xyz.zip.tmp" 然而,我可以在7-zip文件夹中打开文件管理器(" 7zFM"),以管理员身份运行并将所述文件压缩为.zip。 它似乎是关于C://目录的安全问题,因为我似乎可以压缩其他文件和文件夹。 有什么帮助吗?
链接 贝壳 贝壳 2012-07-29 你猜对了。您可以1)以管理员身份运行7-Zip或2)将7-Zip文件管理器(工具 - >选项 - >文件夹)中的工作目录设置为不受保护的目录(例如,清除其中的复选框)并使用"添加到存档..."菜单并在不受保护的目录中创建存档。
答案 0 :(得分:1)
使用-w开关设置工作目录。
答案 1 :(得分:0)
7z 不使用当前目录(您通过 pwd
获得的目录)作为工作目录。它使用将要创建生成的存档所在的那个。
例如:
/tmp $ 7z a /folder.7z /folder
将忽略您在 /tmp
中的事实,并首先在 /
中创建一个 tmp 文件,然后将结果放入 /
无论您当前的文件夹是什么是。
如果您无权在 /
中创建文件,但您有权更新已经存在的存档(非常有效的情况),您将得到您所得到的:>
/tmp $ 7z a /folder.7z /folder
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.utf8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz (806E9),ASM,AES-NI)
Open archive: /folder.7z
--
Path = /folder.7z
Type = 7z
Physical Size = 150
Headers Size = 150
Solid = -
Blocks = 0
Scanning the drive:
1 folder, 2 files, 0 bytes
Updating archive: /folder.7z
Items to compress: 3
Error:
cannot open file
/folder.7z.tmp
Permission denied
System ERROR:
Unknown error -2147024883
此外,如果您在命令行中省略存档名称,它将使用您的源目录。 例如,当您这样做时:
7z a /folder
它将使用 /
作为工作目录 - 它将尝试在 /
中创建临时文件并将生成的存档也放在那里。
要解决这个问题,只需确保存档名称在您的命令行中,并且您对将要创建存档的文件夹具有文件创建权限(有时您有权更新存档本身,但无法创建dame 文件夹中的新文件)