在Linux上启用无痛文件提取的技巧

从存档中提取文件并不困难,但它可能是乏味的,特别是当今使用的所有档案命名约定。但是,通过将过程中的一切放入聪明的小脚本,您可以使任务更容易一点。

存储文件数字归档数据监视器
Thinkstock.

从Linux系统中的档案中提取文件比牙齿提取相当不那么痛苦,但似乎更复杂。在这篇文章中,我们将看一下您如何轻松地从任何类型的存档中解压缩文件,您可能会在Linux系统上遇到。

他们有一堆来自.gz到.tbz2文件的一切,具有如何命名这些文件的一些变体。当然,您可以记住可用于从存档中提取文件的所有各种命令以及它们所提供的选项,但您也可以存入脚本中的诀窍并停止担心详细信息。

在这里,我们展示了如何将一系列提取命令组装到调用适当命令的脚本中,以根据存档文件名提取文件归档的内容。该脚本从某些命令开始验证文件名是否已作为参数提供或要求运行脚本的人提供:

#!/ bin / bash如果[$#-eq 0];然后echo-n“filename>”读取文件名else filename = $ 1 fi如果[!-f“$ filename”];然后回显“没有这样的文件:$ filename”退出$?FI.

知道了?如果没有提供参数并使用提供的参数,则该脚本提示文件名。然后验证文件实际存在。如果没有,脚本退出。

下一步是使用BASH CASE语句来调用归档的适当提取命令,具体取决于其名称。对于其中一些文件类型(例如,.bz2),其他命令柏油也可以工作,但我们只包含每个文件命名约定的一个提取命令。因此,这是具有各种存档文件名的案例语句。

案例$ filename在* .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)解压缩$ filename ;;* .z)解压缩$ filename ;; *) echo “No extract option for $filename” esac

如果向脚本提供的文件具有与脚本已知任何已知的文件的文件扩展名,则会发出“$ filename的未提取选项”消息。如果缺少任何使用的存档类型,只需将它们添加到所需的提取命令。

将BASH标头添加到脚本的顶部,使其可执行,您应该准备好。

#!/ bin / bash如果[$#-eq 0];然后echo-n“filename>”读取文件名else filename = $ 1 fi如果[!-f“$ filename”];然后回显“没有这样的文件:$ filename”退出$?fi case $ filename在* .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如果[$#-eq 0];然后echo-n“filename>”读取文件名else filename = $ 1 fi如果[!-f“$ filename”];然后回显“没有这样的文件:$ filename”退出$?fi case $ filename in * .tar)tar xV.f $ filename ;;* .tar.bz2)tar xV.jf $ filename ;;* .tbz)tar xV.jf $ filename ;;* .tbz2)tar xV.jf $ filename ;;* .tgz)tar xV.zf $ filename ;;* .tar.gz)tar xV.zf $ filename ;;* .gz)gunzip-v.$ filename ;;* .bz2)bunzip2-v.$ filename ;;* .zip)解压缩-v.$ filename ;;* .z)解压缩-v.$ filename ;;*)回显“$ filename的提取选项”esac

包起来

虽然它当然可以为您可能使用的每个提取命令创建一个别名,但更容易让脚本为您遇到的每个文件类型提供的命令,而不是不必停止并解决每个命令和选项。

加入网络世界社区足球竞猜app软件Facebook.linkedin评论是最重要的主题。
有关:

版权所有©2020.足球竞彩网下载

IT薪水调查:结果是