这纯粹是出于懒惰,但我正在寻找一个自定义终端命令来提取 tarball - 即“targz”,然后文件名将提取 tar.gz tarball,然后“tarbz2”......嗯,猜猜。我按照创建自定义命令的说明找到了这里,虽然我确信这对提问者来说很有效(他想要一个命令来为他启动一些事情,不需要额外的参数或任何东西),但它对我来说不起作用。我的 ~/bin 中的“targz”文件内容如下:
tar -xzvf
多么神奇啊。所以我输入
targz putty-0.62.tar.gz
在终端上,它给了我:
tar: option requires an argument -- 'f'
有什么方法可以实现这个功能,这样我就可以在终端中输入“targz”然后输入目标文件名,然后将其提取出来?或者,为了获得额外的懒惰点,输入类似“untar”的内容,然后输入目标文件名,然后将其提取出来,无论是 .gz 还是 .bz2?
答案1
您还可以创建这样的别名:
alias utgz='tar -zxf '
现在发出命令utgz tarball.tar.gz
将从 ta 中提取所有文件,而无需经过单独的 shell。据我了解,别名只是充当文本替换。
如果你在提示符下输入 alias ,你可能会看到类似'ls=ls -F'
and so 的内容。soutgz tarball.tar.gz
会更改为tar -zxf tarball.tar.gz
。
答案2
您想要做的是将参数传递给 shell 脚本。查看此关联。我想你会有答案的。至于问题的第二部分,使用tar -xvf
将解压任何文件,无论是 .gz、.bz2 还是 .xz。