请教如何将tar.gz和tar.bz2的提取和创建alias成一个命令

2013-10-15 18:27:47 +08:00
 qingfeng
请教该如何将tar.gz和tar.bz2的提取和创建alias成一个命令,比如:

解压和压缩tar.gz文件
tg -x test.tar.gz
tg -c test.tar.gz dir_test

解压和压缩tar.bz2文件
tb -x test.tar.bz2
tb -c test.tar.bz2 dir_test

这样的alias可以实现吗?求教!
3738 次点击
所在节点    Linux
8 条回复
cfddream
2013-10-15 19:24:30 +08:00
amyangfei
2013-10-15 19:48:16 +08:00
zsh 对alias 有更多的支持
rrfeng
2013-10-15 20:00:58 +08:00
其实不用 alias 也行啊
自己用 shell script 写出想要的功能来,丢到 PATH 里不就行了~~
efi
2013-10-15 22:25:15 +08:00
apt-get install atool
apack test.{tar.gz,zip,xz,anything} dir
aunpack test.*
likuku
2013-10-16 00:41:02 +08:00
现代的 tar 直接支持自动解压 gnuzip 和 bzip2 格式的 tar包:

tar xf file.tar.bz2
tar xf file.tar.gz

都是可以直接解压成最终的目录/文件的。
msg7086
2013-10-16 07:18:23 +08:00
解压会自动识别。创建的话需要手动指定。

alias的话也很简单,比如把
tar czf file.tgz dir
简化成
tg c file.tgz dir
可以写
alias tg='tar zf'
leecade
2013-10-16 11:27:03 +08:00
# Extract archives - use: extract <file>
# Credits to http://dotfiles.org/~pseup/.bashrc
function extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar e $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
qingfeng
2013-10-16 13:35:40 +08:00
@leecade 谢谢!请问如何将该extract函数改成一个正常打包和提取的函数:
提取出文件: extract -x <file> 或者 extract x <file>
打包成文件:extract -c <file> <dirname> 或者 extract c <file> <dirname>

BTW,我是linux新手,刚接触shell,多谢各位的帮助!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/85686

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX