终端解压缩外部默认目录


2

在将CMS部署到远程服务器时,使用终端命令“unzip”似乎非常有用,因为您可以传输zip并远程解压缩。但是,我找不到将所有文件直接解压缩到.zip文件所在目录的根目录的方法。默认情况下,它创建一个与.zip文件同名的文件夹,并将文件提取到该文件夹之后我需要做一个mv命令将文件夹的内容移动到根目录。

我可以使用解压缩一步一步做到这一点吗?

Answers:


0

你问题的具体答案是否定的。OS X附带的解压缩无法动态更改zip中的目录。但需要注意的一点是,zip不是“创建目录”。它是档案的一部分。如果您正在控制创建过程,正确创建的zip存档将不会出现此问题:

$ ls -l
total 0
-rw-r--r--  1 bsmith  staff  0 Sep 30 22:01 b
-rw-r--r--  1 bsmith  staff  0 Sep 30 22:01 c
$ zip -r a.zip .
  adding: b (stored 0%)
  adding: c (stored 0%)
$ cd ../b
$ unzip ../a/a.zip
Archive:  ../a/a.zip
 extracting: b                       
 extracting: c                       
$ ls -l
total 0
-rw-r--r--@ 1 bsmith  staff  0 Sep 30 22:01 b
-rw-r--r--@ 1 bsmith  staff  0 Sep 30 22:01 c

1
你似乎是对的。我将在unzip命令后继续使用mv命令。
funkylaundry 2011年

2

尝试使用-d参数指定要提取到的根目录。您可以使用 '。' 或'〜'作为您的目录,避免将所有内容放在带有zip文件名的默认目录中。这是文档:

[-d exdir]要提取文件的可选目录。
默认情况下,所有文件和子目录都在当前目录中重新创建; -d选项允许在任意目录中进行提取(总是假设有权写入目录)。此选项不需要出现在命令行的末尾; 它在zipfile规范之前(使用常规选项),在zipfile规范之后立即被接受,或者在文件和-x选项之间被接受。可以连接选项和目录,它们之间没有任何空格,但请注意,这可能会导致正常的shell行为被抑制。特别是,-d ~'' (tilde) is expanded by Unix C shells into the name of the user's home directory, but-d~''被视为当前目录的文字子目录``〜''。


2
我知道-d选项,它使我能够提取到与zip文件的源不同的目录,仍然会创建一个带有zip文件名的新文件。
funkylaundry 2011年

0

你可以使用-j标志。

例:

$ mkdir Testing && cd Testing
~/Testing $ touch one two three four five
~/Testing $ cd ..
$ zip -r Testing Testing
$ ls -la | grep Testing


drwxr-xr-x   7 username  staff    238 Aug  2 20:03 Testing
-rw-r--r--   1 username  staff    924 Aug  2 20:03 Testing.zip

现在,

$ rm -rf Testing
$ unzip -j Testing.zip
$ ls -la

-rw-r--r--   1 username  staff     0 Aug  2 20:03 five
-rw-r--r--   1 username  staff     0 Aug  2 20:03 four
-rw-r--r--   1 username  staff     0 Aug  2 20:03 one
-rw-r--r--   1 username  staff     0 Aug  2 20:03 three
-rw-r--r--   1 username  staff     0 Aug  2 20:03 two

这将帮助您提取存档的内容,而不是包含的文件夹。

$ man unzip

-j     junk paths.  The archive's directory structure is not recreated;
       all files are deposited in the extraction directory 
       (by default, the current one).

有关更多信息,请参阅解压缩手册页。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.