我有一个使用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的情况下工作得很好。
我找到了下面的评论,但它似乎只与Windows相关。我想知道如何在UNIX上实现这一点。
我试着在网上找了一会儿,但找不到任何帮助,所以我来了我的第一个问题是当我试图用上下文菜单(7-zip > Add to "xyz.zip")压缩C://中的一个文件夹时,我得到了错误:“访问被拒绝。7-zip无法打开文件"xyz.zip.tmp”但是我可以打开7-zip文件夹("7zFM")中的文件管理器,以管理员身份运行并将所述文件压缩到.zip。这似乎是关于C://目录的安全问题,因为似乎我可以压缩其他文件和文件夹。有帮助吗?
链接Shell Shell 2012-07-29您猜对了。您可以1)以管理员身份运行7-Zip或2)在7-Zip文件管理器(工具->选项->文件夹)中将工作目录设置为不受保护的目录(例如,清除那里的复选框)并使用"Add to archive…“菜单,并在不受保护的目录中创建存档。
发布于 2015-08-09 03:25:48
使用-w开关设置工作目录。
发布于 2020-12-21 04:16:40
7z 不使用当前目录(通过pwd获得的目录)作为工作目录。它使用将在其中创建结果存档的文件。
例如:
/tmp $ 7z a /folder.7z /folder
将忽略您在/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文件夹中创建新文件)
https://stackoverflow.com/questions/31888069
复制相似问题