很多时候,我需要使用commad-line提取不同种类的存档文件。但是我并非一直都记得任何类型的文件存档的确切命令。因此,我必须浪费时间并再次搜索。如何避免这种情况?
很多时候,我需要使用commad-line提取不同种类的存档文件。但是我并非一直都记得任何类型的文件存档的确切命令。因此,我必须浪费时间并再次搜索。如何避免这种情况?
Answers:
您可以使用以下shell脚本(我将其命名为,extract
然后放入~/bin
):
#!/ bin / bash 如果[$#-lt 1];然后 回声“用法:`basename $ 0`文件” 1号出口 科幻 #我在https://unix.stackexchange.com/a/168/37944找到了以下功能 #我对其进行了一些改进。非常感谢sydo提出这个想法。 提取(){ 为$ @中的arg; 做 如果[-f $ arg]; 然后 案例$ arg * .tar.bz2)tar xjf $ arg ;; * .tar.gz)tar xzf $ arg ;; * .bz2)bunzip2 $ arg ;; * .gz)gunzip $ arg ;; * .tar)tar xf $ arg ;; * .tbz2)tar xjf $ arg ;; * .tgz)tar xzf $ arg ;; * .zip)解压缩$ arg ;; * .Z)解压缩$ arg ;; * .rar)rar x $ arg ;; #必须安装“ rar” * .jar)jar -xvf $ arg ;; #必须安装'jdk' *)echo“'$ arg'不能通过extract()提取” ;; 埃萨克 其他 回显“'$ arg'不是有效文件” 科幻 做完了 } 提取$ @
不要忘记使脚本可执行:
chmod +x ~/bin/extract
用法:
解压缩file_1 file_2 ... file_n
basename $arg
可能会有所帮助。
atool
,您可以使用它们提取/打包多种格式:请参阅我为这个问题提供的答案:command-line-archive-manager-extracter。这个问题也是该问题的重复,因此可能应该合并它们。