Linux解压压缩和grep总结
参考了朋友的两篇博文,分别是Linux 文件解压及压缩命令和Grep
#Linux 文件解压及压缩命令
Linux下,通常需要用tar命令进行解压和压缩操作,针对不同的压缩文件格式,tar命令的参数也不相同。
##tar 命令的常用参数含义:
Main operation mode:
-A, --catenate, --concatenate append tar files to an archive
-c, --create create a new archive
-d, --diff, --compare find differences between archive and file system
--delete delete from the archive (not on mag tapes!)
-r, --append append files to the end of an archive
-t, --list list the contents of an archive
--test-label test the archive volume label and exit
-u, --update only append files newer than copy in archive
-x, --extract, --get extract files from an archive
##常见压缩文件格式解压参数
- .tar.Z 格式
[解压]$ tar Zxvf FileName.tar.Z
[压缩]$ tar Zcvf FileName.tar.Z
- .zip 格式
[压缩]$ unzip FileName.zip
[解压]$ zip
- .gz 格式
[解压]$ gunzip FileName.gz
[ 或]$ gzip -d FileName.gz
[压缩]$ gzip FileName
- .tar.gz 格式
[解压]$ tar zxvf FileName.tar.gz
[压缩]$ tar zcvf FileName.tar.gz DirNamee
- .bz2 格式
[解压]$ bzip2 -d FileName.bz2
[ 或]$ bunzip2 FileName.bz2
[压缩]$ bzip2 -z FileName
- .tar.bz2 格式
[解压]$ tar jxvf FileName.tar.bz2
[压缩]$ tar jcvf FileName.tar.bz2 DirName
- .bz 格式
[解压]$ bzip2 -d FileName.bz
[ 或]$ bunzip2 FileName.bz
- .tar.bz 格式
[解压]$ tar jxvf FileName.tar.bz
- .Z 格式
[解压]$ uncompress FileName.Z
[压缩]$ compress FileName
- .tgz 格式
[解压]$ tar zxvf FileName.tgz
- .tar.tgz 格式
[解压]$ tar zxvf FileName.tar.tgz
[压缩]$ tar zcvf FileName.tar.tgz FileName
- .zip 格式
[解压]$ unzip FileName.zip
[压缩]$ zip FileName.zip DirName
- .rar 格式
[解压]$ rar e FileDir
[压缩]$ rar a FileName.rar
- .tar.lz 格式
[解压]$ tar xvf filename.tar.lz
- .tar.xz 格式
[解压]$ xz -d filename.tar.xz
[压缩]$ xz -Z FileDir
- .lzma格式
[解压]$ lzma -d filename.lzma
[压缩]$ lzma -k FileDir
- .tar 格式
[解包]$ tar xvf FileName.tar
[打包]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)
- .lha格式
[解压]$ lha -e FileName.lha
[压缩]$ lha -a FileName.lha FileName
#Grep命令
指定要搜索的单词
grep -w "word"
搜索以特定字符串开头的单词
grep '\<word'
搜索以特定字符串结尾的单词
grep 'word\>'
搜索以特定字符串开头的行
grep '^word'
搜索以特定字符串结尾的行
grep 'word$'
显示上下文
- 显示 n 行上文
grep 'word' -B n
- 显示 n 行下文
grep 'word' -A n
- 显示上文和下文各 n 行
grep 'word' -C n
正则表达式
- -e选项: 将模式串作为正则表达式进行匹配。
- -G选项: 模式串是基本正则表达式。
- -E选项: 模式串是扩展正则表达式。
过滤模式串
grep -v 'word'
查找所有不符合条件的行。
POSIX字符集
grep '[[:space:]]'
显示出所有有空格的行。
其他POSIX字符集的用法同上例。
##在一个目录下的所有文件中寻找一个字符串
举例:需要在code目录下寻找main_func符号,只需写成:
grep 'main_func' code/ -r
即可,为了增强搜索结果的可读性,可以写成这样:
grep --color -n 'main_func' code/ -r -C 2
其中,–color表示彩色输出,-n表示显示行号,即可以清楚地看见匹配的位置,-C 2表示输出两行上下文,进一步增强搜索结果的可读性。