文章目录
- windows_powershell+scoop+7zip_命令行解压缩7z包
- references
- 7z:安装&操作&效果
- windows
- 获取帮助
- 指定目录&密码
- 解压示例
- linux: 7z/p7zip
- kali:Kali GNU/Linux Rolling
- ubuntu 18
- zip系列
- 7z
- Compress-archive
- Expand-Archive
- examples
windows_powershell+scoop+7zip_命令行解压缩7z包
references
7z:安装&操作&效果
windows
🚀 scoop search 7zip
'main' bucket:
7zip (21.07)
7zip19.00-helper (19.00)
# 获取scoop帮助
🚀 scoop help
Usage: scoop <command> [<args>]
Some useful commands are:
....
#检查scoop 安装列表7zip
🚀 scoop list
Installed apps:
Name Version Source Updated Info
---- ------- ------ ------- ----
7zip 21.07 main 2022-05-05 14:05:15
coreutils 5.97.3 main 2022-05-05 15:05:07
dark 3.11.2 main 2022-05-05 14:05:55
innounp 0.50 main 2022-05-05 14:05:37
lsd 0.21.0 main 2022-04-29 11:04:13
neofetch 7.1.0 main 2022-04-29 13:04:41
neovim 0.6.1 main 2022-02-23 09:02:09
ntop 0.3.4 main 2022-04-20 10:04:36
psutils 0.2020.02.27 main 2022-02-20 15:02:51
#查看7zip用法
cxxu ~/Downloads ﲍ 100 19:12:14
🚀 scoop info 7zip
Name : 7zip
Description : A multi-format file archiver with high compression ratios
Version : 21.07
Bucket : main
Website : https://www.7-zip.org
License : LGPL-2.1-or-later
Updated at : 2022/4/4 17:24:43
Updated by : Issac Lin
Installed : 21.07
Binaries : 7z.exe
Shortcuts : 7-Zip
Notes : Add 7-Zip as a context menu option by running: "<root>\install-context.reg"
# 得知,二进制文件可执行文件名为`7z.exe`,可以简写为`7z`
cxxu ~/Downloads ﲍ 100 19:12:46
🚀 7z.exe
7-Zip 21.07 (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-12-26
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]
<Commands>
a : Add files to archive
b : Benchmark
d : Delete files from archive
e : Extract files from archive (without using directory names)
h : Calculate hash values for files
i : Show information about supported formats
l : List contents of archive
rn : Rename files in archive
t : Test integrity of archive
u : Update files to archive
x : eXtract files with full paths
获取帮助
7z --help
指定目录&密码
-o{Directory} : set Output directory
-p{Password} : set Password
- 这里的花括号表示-o选项和指定的目录名之间没有空格
- 对于特殊字符,可能需要转义,保护其不备shell解释
- 例如
7z x .\archive.zip -ooutput
7z x .\archive.zip -otarget2
PS D:\repos\scripts\jsScripts> lsd --tree
.
├── archive.zip
├── clock.js
├── output
│ ├── clock.js
│ ├── theSnippetYourSelectToRun.js
│ └── timeFresher.js
├── target2
│ ├── clock.js
│ ├── theSnippetYourSelectToRun.js
│ └── timeFresher.js
├── theSnippetYourSelectToRun.js
└── timeFresher.js
解压示例
cxxu ~/Downloads ﲍ 100 19:15:36
🚀 7z x '.\PDF-XChange_Editor_Plus_9.2.359.0_Green(1).7z'
7-Zip 21.07 (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-12-26
Scanning the drive for archives:
1 file, 142590453 bytes (136 MiB)
Extracting archive: .\PDF-XChange_Editor_Plus_9.2.359.0_Green(1).7z
Path = .\PDF-XChange_Editor_Plus_9.2.359.0_Green(1).7z
Type = 7z
Physical Size = 142590453
Headers Size = 11276
Method = LZMA:26 BCJ2
Solid = +
Blocks = 2
Everything is Ok
Folders: 17
Files: 547
Size: 484316612
Compressed: 142590453
linux: 7z/p7zip
不同发行版可用的包名字不同
kali:Kali GNU/Linux Rolling
┌─[cxxu@CxxuWin11] - [/mnt/d/repos/web/webLearn] - [2022-05-10 02:12:25]
└─[0] <git:(main 2852e10✗✱✈) > apt search 7zip
[sudo] password for cxxu:
Sorting... Done
Full Text Search... Done
7zip/kali-rolling,now 21.07+dfsg-4 amd64 [installed]
7-Zip file archiver with a high compression ratio
ubuntu 18
┌─[cxxu@cxxuAli] - [~] - [2022-05-10 02:24:01]
└─[1] <> apt search 7zip
Sorting... Done
Full Text Search... Done
....
p7zip/bionic,bionic,now 16.02+dfsg-6 amd64 [installed]
7zr file archiver with high compression ratio
p7zip-full/bionic,bionic,now 16.02+dfsg-6 amd64 [installed]
7z and 7za file archivers with high compression ratio
p7zip-rar/bionic,bionic 16.02-2 amd64
non-free rar module for p7zip
zip系列
7z
7zip支持常见的各种压缩格式:
- rar/gzip/bzip2/zip/…
-
7z i
可以查看完整列表
PS D:\repos\scripts\jsScripts> 7z x .\archive.zip -ooutput
7-Zip 21.07 (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-12-26
Scanning the drive for archives:
1 file, 2387 bytes (3 KiB)
Extracting archive: .\archive.zip
--
Path = .\archive.zip
Type = zip
Physical Size = 2387
Everything is Ok
Files: 3
Size: 5091
Compressed: 2387
Compress-archive
NAME
Compress-Archive
SYNOPSIS
Creates a compressed archive, or zipped file, from specified files and directories.
----- Example 1: Compress files to create an archive file -----
$compress = @{
Path = "C:\Reference\Draftdoc.docx", "C:\Reference\Images\*.vsd"
CompressionLevel = "Fastest"
DestinationPath = "C:\Archives\Draft.Zip"
}
Compress-Archive @compress
The Path parameter accepts specific file names and file names with wildcards, `*.vsd`.
The Path uses a comma-separated list to get files from different directories. The com
pression level is Fastest to reduce processing time. The DestinationPath parameter spe
cifies the location for the `Draft.zip` file. The `Draft.zip` file contains `Draftdoc.
docx` and all the files with a `.vsd` extension.
-------- Example 2: Compress files using a LiteralPath --------
$compress = @{
LiteralPath= "C:\Reference\Draft Doc.docx", "C:\Reference\Images\diagram2.vsd"
CompressionLevel = "Fastest"
DestinationPath = "C:\Archives\Draft.Zip"
}
Compress-Archive @compress
Absolute path and file names are used because the LiteralPath parameter doesn't accept
wildcards. The Path uses a comma-separated list to get files from different directori
es. The compression level is Fastest to reduce processing time. The DestinationPath pa
rameter specifies the location for the `Draft.zip` file. The `Draft.zip` file only con
tains `Draftdoc.docx` and `diagram2.vsd`.
-------------
Example 3: Compress a directory that includes the root directory
Compress-Archive -Path C:\Reference -DestinationPath C:\Archives\Draft.zip
`Compress-Archive` uses the Path parameter to specify the root directory, `C:\Referenc
e`. The DestinationPath parameter specifies the location for the archive file. The `Dr
aft.zip` archive includes the `Reference` root directory, and all its files and subdir
ectories.
Example 4: Compress a directory that excludes the root directory
Compress-Archive -Path C:\Reference\* -DestinationPath C:\Archives\Draft.zip
`Compress-Archive` uses the Path parameter to specify the root directory, `C:\Referenc
e` with an asterisk (`*`) wildcard. The DestinationPath * parameter specifies the loca
tion for the archive file. The `Draft.zip` archive contains the root directory's files
and subdirectories. The `Reference` root directory is excluded from the archive.
---- Example 5: Compress only the files in a root directory ----
Compress-Archive -Path C:\Reference\*.* -DestinationPath C:\Archives\Draft.zip
`Compress-Archive` uses the Path parameter to specify the root directory, `C:\Referenc
e` with a star-dot-star (` . `) wildcard. The DestinationPath parameter specifies the
location for the archive file. The `Draft.zip` archive only contains the `Reference` r
oot directory's files and the root directory is excluded.
--------- Example 6: Use the pipeline to archive files ---------
Get-ChildItem -Path C:\Reference\Afile.txt, C:\Reference\Images\Bfile.txt |
Compress-Archive -DestinationPath C:\Archives\PipelineFiles.zip
`Get-ChildItem` uses the Path parameter to specify two files from different directorie
s. Each file is represented by a FileInfo object and is sent down the pipeline to `Com
press-Archive`. The two specified files are archived in `PipelineFiles.zip`.
------ Example 7: Use the pipeline to archive a directory ------
Get-ChildItem -Path C:\LogFiles | Compress-Archive -DestinationPath C:\Archives\Pipeli
neDir.zip
`Get-ChildItem` uses the Path parameter to specify the `C:\LogFiles` root directory. E
ach FileInfo and DirectoryInfo object is sent down the pipeline.
`Compress-Archive` adds each object to the `PipelineDir.zip` archive. The Path paramet
er isn't specified because the pipeline objects are received into parameter position 0
.
--------- Example 8: How recursion can affect archives ---------
Get-ChildItem -Path C:\TestLog -Recurse |
Compress-Archive -DestinationPath C:\Archives\PipelineRecurse.zip
The `C:\TestLog` directory doesn't contain any files. It does contain a subdirectory n
amed `testsub` that contains the `testlog.txt` file.
`Get-ChildItem` uses the Path parameter to specify the root directory, `C:\TestLog`. T
he Recurse parameter processes the files and directories. A DirectoryInfo object is cr
eated for `testsub` and a FileInfo object `testlog.txt`.
Each object is sent down the pipeline to `Compress-Archive`. The DestinationPath speci
fies the location for the archive file. The Path parameter isn't specified because the
pipeline objects are received into parameter position 0.
The following summary describes the `PipelineRecurse.zip` archive's contents that cont
ains a duplicate file:
- The DirectoryInfo object creates the `testsub` directory and contains the `testlog.t
xt` file, which reflects the original directory structure. - The FileInfo object cre
ates a duplicate `testlog.txt` in the archive's root. The duplicate file is created
because recursion sent a file object to `Compress-Archive`. This behavior is expecte
d because each object sent down the pipeline is added to the archive.
---------- Example 9: Update an existing archive file ----------
Compress-Archive -Path C:\Reference -Update -DestinationPath C:\Archives\Draft.Zip
The command updates `Draft.Zip` with newer versions of existing files in the `C:\Refer
ence` directory and its subdirectories. And, new files that were added to `C:\Referenc
e` or its subdirectories are included in the updated `Draft.Zip` archive.
Expand-Archive
NAME
Expand-Archive
SYNOPSIS
Extracts files from a specified archive (zipped) file.
examples
NAME
Expand-Archive
SYNOPSIS
Extracts files from a specified archive (zipped) file.
-------- Example 1: Extract the contents of an archive --------
Expand-Archive -LiteralPath 'C:\Archives\Draft[v1].Zip' -DestinationPath C:\Reference
In this example, the LiteralPath parameter is used because the filename contains chara
cters that could be interpreted as wildcards.
Example 2: Extract the contents of an archive in the current folder
Expand-Archive -Path Draftv2.Zip -DestinationPath C:\Reference