一个用来提取各种类型的文件的Bash函数
时间:2020-03-21 11:42:33 来源:igfitidea点击:
有许多应用程序可用于提取各种类型的存档文件。
对我们而言,记住每个存档工具的所有选项和参数将很困难。
下面是一个简单的Bash函数,用于提取Linux中各种类型的文件档案。
此Bash函数能够提取最常用的存档格式,例如.tar.bz2,.tar.bz,.bz2,.rar,.zip和.7z等。
我们无需使用实际的存档应用程序提取存档文件!只需将此函数添加到“~/bashrc”文件中,然后调用它以提取存档文件即可。
它将自动查找并使用适当的存档工具来提取文件。
无需记住标志和选项!
Bash函数提取各种类型的文件档案
打开“~/.bashrc”文件:
$nano ~/.bashrc
在末尾添加以下代码段:
# Bash Function To Extract File Archives Of Various Types extract () { if [ -f ] ; then case in *.tar.bz2) tar xjf ;; *.tar.gz) tar xzf ;; *.bz2) bunzip2 ;; *.rar) rar x ;; *.gz) gunzip ;; *.tar) tar xf ;; *.tbz2) tar xjf ;; *.tgz) tar xzf ;; *.zip) unzip ;; *.Z) uncompress ;; *.7z) 7z x ;; *) echo "'' cannot be extracted via extract()" ;; esac else echo "'' is not a valid file" fi }
按“ Ctrl + o”,然后按Enter以保存文件,然后按“ Ctrl +” x退出文件。
运行以下命令以使更改生效:
$source ~/.bashrc
从现在开始,我们只需调用此函数即可提取各种类型的存档文件。
例如,我将使用命令提取“ .7z”存档文件类型:
$extract archive.7z
输出示例:
7-Zip [64] 16.02 : Copyright (c) 1999-2015 Igor Pavlov : 2015-05-21 p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM) Scanning the drive for archives: 1 file, 16013693 bytes (16 MiB) Extracting archive: archive.7z - Path = archive.7z Type = 7z Physical Size = 16013693 Headers Size = 1204 Method = LZMA:23 Solid = + Blocks = 1 Everything is Ok Folders: 21 Files: 37 Size: 16625007 Compressed: 16013693
同样,要提取“ .zip”类型的文件,命令将是:
$extract archive.zip
请注意,在使用此功能之前,我们必须已经安装了适当的存档管理器。
如果系统上没有安装受支持的存档工具,我们将收到以下错误消息:
$extract archive.zip bash: /usr/bin/unzip: No such file or directory
该脚本的原始作者是未知的。
Internet上的多个地方都提到了此脚本。