有没有办法使用zip命令压缩给定目录中的所有文件?我听说过使用*.*,但我希望它也适用于无扩展名的文件。
我需要从我知道路径的 ZIP 文件中提取一个文件。有没有类似下面的命令:
unzip -d . myarchive.zip path/to/zipped/file.txt
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的命令提取并重新创建了文件的整个路径./path/to/zipped/file.txt。有没有办法让我简单地将文件拉到指定的目录中?
我有一个名为的目录folder,如下所示:
folder
-> root_folder
-> some files
Run Code Online (Sandbox Code Playgroud)
我想把这个目录压缩到zipped_dir,我试过:
zip -r zipped_dir.zip folder/*
Run Code Online (Sandbox Code Playgroud)
但这会生成一个看起来像这样的 ZIP:
zipped_dir
-> folder
-> root_folder
-> some files
Run Code Online (Sandbox Code Playgroud)
换句话说,它包括我想要压缩其内容的目录。如何在不移动任何内容的情况下从 ZIP 中排除此父目录?
IE 我想要这个最终结果:
zipped_dir
-> root_folder
-> some files
Run Code Online (Sandbox Code Playgroud) 我想在 Ubuntu 上将所有内容(包括当前目录中的文件和文件夹)压缩并打包到一个 ZIP 文件中。
对此最方便的命令是什么(以及需要安装的工具的名称,如果有的话)?
编辑:如果我需要排除一个文件夹或多个文件怎么办?
我需要将 400mb 的文件上传到我的网络服务器,但我的上传限制为 200mb。我的主持人建议我使用跨区存档,我从未在 Linux 上这样做过。
我在自己的文件夹中创建了一个测试,拉上了一个PDF到test.zip.001,.002和.003。我该如何解压它?我需要先加入他们吗?
请注意,使用 7z 和使用 ZIP 格式一样快乐。如果这对结果有任何影响。
如何从压缩档案中提取特定文件夹到给定目录?
我尝试使用
unzip "/path/to/archive.zip" "in/archive/folder/" -d "/path/to/unzip/to"
Run Code Online (Sandbox Code Playgroud)
但这只会在我希望它解压缩到的路径上创建文件夹,并且不执行任何其他操作。
我整理了一个脚本来为我做一些文件操作。我正在使用通配符运算符*将函数应用于一种类型的所有文件,但有一件事情我不明白。我可以unzip像这样的文件夹中的所有文件
unzip "*".zip
Run Code Online (Sandbox Code Playgroud)
但是,之后要删除所有 zip 文件,我需要执行
rm *.zip
Run Code Online (Sandbox Code Playgroud)
也就是说,它不需要引号。另一方面,如果我只是给它*(给我一个“文件不匹配”的警告),解压缩将不起作用。
为什么这是不同的?对我来说,这似乎是完全相同的操作。还是我错误地使用了通配符?
Unix 中通配符的介绍并没有真正涉及到这一点,我在rm或zip文档中找不到任何内容。
我在 Mac (Yosemite) 上使用终端。
我有一个目录,其中包含数十个目录。
我是命令行新手,我正在努力想出一个命令来将每个子目录压缩到一个唯一的 sub-directory.zip 文件中。
所以最后我的主目录将填充我所有的原始子目录,以及.zip包含每个子目录压缩内容的相应文件。
这样的事情可能吗?如果是这样,请告诉我它是如何完成的。