是否可以通过单个命令将文档解压到动态创建的目录中?

是否可以通过单个命令将文档解压到动态创建的目录中?

我怎样才能实现以下目标?

unzip ./zipped_docs.zip ./new_folder | mkdir ./new_folder

或者

mkdir ./new_folder | unzip ./zipped_docs.zip ./new_folder

我甚至尝试过

mkdir ./new_folder && unzip ./zipped_docs.zip ./new_folder

这些都没有起到作用,但是这个想法很明确。

这可能吗?

答案1

正确的方法是使用-command-d中的 -optionunzip

mkdir new_folder && unzip zipped_docs.zip -d new_folder

man unzip

[-d 扩展目录]
              可选目录,用于提取文件。默认情况下,
              所有文件和子目录均在当前目录中重新创建
              tory;-d 选项允许在任意目录中提取
              (始终假设有人有写入目录的权限)。

答案2

我发现file-roller -h当档案不包含单个顶级目录,而是一堆文件和/或目录时,标志很有用。通过使用file-roller -h,将创建一个与档案名称匹配的新目录。

file-roller -h archive.zip

例如,archive.zip将被提取到新创建的archive目录中。如果使用简单的名称,可能会发生冲突,但这个想法是,您提取的档案相对来说是唯一的。

您可以使用标志指定一个目录,而不是根据档案名称自动创建此目录-e

file-roller -e /tmp/new_dir archive.zip

如果下一步是对目录中的一堆文件执行此操作,请注意一些常见错误,特别是循环遍历目录中的文件(即:for f in dir/

相关内容