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

小编给大家分享一下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上无痛文件提取的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章题目:Linux上无痛文件提取的示例分析
标题来源:http://pwwzsj.com/article/gjpgsd.html