8

令人惊讶的是,我还没有在这里找到这个问题的直接答案。我还在学习Linux。假设我已将 zip 文件下载到我的下载文件夹。现在,我想将它移动到受保护的文件夹中,例如 /opts 或 /var。是否有一个很好的命令可以将文件sudo moveunzip文件放到我需要它去的地方?

4

3 回答 3

21

如果您希望执行两个单独的操作(移动和提取),那么您别无选择,只能使用两个命令。

但是,如果您的最终目标是将 zip 文件提取到特定目录,则可以将 zip 文件保留在原处并使用以下-d选项指定提取目录:

sudo unzip thefile.zip -d /opt/target_dir

手册页

[-d exdir]

提取文件的可选目录。默认情况下,所有文件和子目录都在当前目录中重新创建;-d 选项允许在任意目录中提取(总是假设一个人有权写入该目录)。这个选项不需要出现在命令行的末尾;它也可以在 zipfile 规范之前(使用普通选项)、在 zipfile 规范之后或在文件和 -x 选项之间接受。选项和目录可以连接在一起,它们之间没有任何空格,但请注意,这可能会导致正常的 shell 行为被抑制。特别是,''-d ~''(波浪号)由 Unix C shell 扩展为用户主目录的名称,但 ''-d~'' 被视为文字子目录 ''~''

于 2013-01-17T14:43:43.870 回答
1

sudo mv <file_name> /opts && unzip /opts/<file_name>

您也可以指定解压缩的目标,以便您可以在单个命令中执行此操作。然而,这将与上面的命令有点不同,因为 zip 将保留在其当前位置,只有解压缩的文件将被提取到指定的目标。

于 2013-01-17T14:42:12.270 回答
1
unzip -d [target directory] [filename].zip
于 2013-01-17T14:44:16.100 回答