温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux上无痛文件提取的示例分析

发布时间:2021-10-25 11:10:03 来源:亿速云 阅读:113 作者:小新 栏目:系统运维

小编给大家分享一下Linux上无痛文件提取的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

它们有很多格式,从 .gz 到  .tbz2,这些文件的命名方式都各有一些不同。当然,你可以记住所有从存档中提取文件的各种命令以及它们的选项,但是你也可以将所有经验保存到脚本中,而不再担心细节。

在本文中,我们将一系列提取命令组合成一个脚本,它会调用适当的命令根据文档名提取文件的内容。该脚本首先以一些命令来验证是否已经提供了一个文件名作为参数,或要求运行脚本的人提供文件名。

#!/bin/bash if [ $# -eq 0 ]; then     echo -n "filename> "     read filename else     filename=$1 fi if [ ! -f "$filename" ]; then     echo "No such file: $filename"     exit $? fi

了解了么?如果未提供任何参数,脚本将提示输入文件名,如果存在则使用它。然后,它验证文件是否实际存在。如果不是,那么脚本退出。

下一步是使用 bash 的 case 语句根据存档文件的名称调用适当的提取命令。对于其中某些文件类型(例如 .bz2),也可以使用除 tar  之外的其它命令,但是对于每种文件命名约定,我们仅包含一个提取命令。因此,这是带有各种存档文件名的 case 语句:

 case $filename in     *.tar)      tar xf $filename;;     *.tar.bz2)  tar xjf $filename;;     *.tbz)      tar xjf $filename;;     *.tbz2)     tar xjf $filename;;     *.tgz)      tar xzf $filename;;     *.tar.gz)   tar xzf $filename;;     *.gz)       gunzip $filename;;     *.bz2)      bunzip2 $filename;;     *.zip)      unzip $filename;;     *.Z)        uncompress $filename;;     *)          echo "No extract option for $filename" esac

如果提供给脚本的文件扩展名与脚本已知的扩展名都不匹配,那么会发出 “No extract option for $filename”  的消息。如果缺少你使用的任何存档类型,只需将它们与所需的提取命令一起添加即可。

将 bash 头添加到脚本顶部,使其可执行,然后就可以开始了。

#!/bin/bash if [ $# -eq 0 ]; then     echo -n "filename> "     read filename else     filename=$1 fi if [ ! -f "$filename" ]; then     echo "No such file: $filename"     exit $? fi case $filename in     *.tar)      tar xf $filename;;     *.tar.bz2)  tar xjf $filename;;     *.tbz)      tar xjf $filename;;     *.tbz2)     tar xjf $filename;;     *.tgz)      tar xzf $filename;;     *.tar.gz)   tar xzf $filename;;     *.gz)       gunzip $filename;;     *.bz2)      bunzip2 $filename;;     *.zip)      unzip $filename;;     *.Z)        uncompress $filename;;     *.rar)      rar x $filename ;;     *)

如果你希望脚本在提取文件时显示内容,请将详细选项(-v)添加到每个命令参数字符串中:

#!/bin/bash if [ $# -eq 0 ]; then     echo -n "filename> "     read filename else     filename=$1 fi if [ ! -f "$filename" ]; then     echo "No such file: $filename"     exit $? fi case $filename in     *.tar)      tar xvf $filename;;     *.tar.bz2)  tar xvjf $filename;;     *.tbz)      tar xvjf $filename;;     *.tbz2)     tar xvjf $filename;;     *.tgz)      tar xvzf $filename;;     *.tar.gz)   tar xvzf $filename;;     *.gz)       gunzip -v $filename;;     *.bz2)      bunzip2 -v $filename;;     *.zip)      unzip -v $filename;;     *.Z)        uncompress -v $filename;;     *)          echo "No extract option for $filename" esac

以上是“Linux上无痛文件提取的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI