几个重要的shell命令:diff patch tar find grep

  diff diir_1.0/ dir_2.0/ -urNB > dir_2.0.patch

u:union以合并的格式来输出文件的差异信息

r:递归的对比所有的子目录下的文件

U:将不存在的文件视为空文件

B:忽略空行引起的差异

~/dir_1.0$ patch -p1< ../dir_2.0.patch

-p1的意思是忽略补丁文件中的路径一级分量:比如补丁是在home目录生成的,home目录下有dir_1.0/ dir_2.0/两个目录。

打补丁的时候进入了dir_1.0/这个目录,我就需要忽略进入的这一级目录。

tar
==================
作用:压缩、解压、释放、归档文件
用法:
-------------
1. 解压
tar -xjvf a.tar.bz2 :以bz2格式解压到当前目录
tar -xzvf a.tar.gz :以gz 格式解压到当前目录

tar -xjvf a.tar.bz2 -C /tmp:以bz2格式解压到/tmp
tar -xzvf a.tar.gz -C /tmp:以gz 格式解压到/tmp

2. 压缩
tar -cjvf a.tar.bz2 dir1/ file :以bz2格式,将dir1/和file压缩成a.tar.bz2
tar -czvf a.tar.gz dir1/ file :以gz 格式,将dir1/和file压缩成a.tar.gz

grep (支持正则表达式)
============================
作用:在文件中,查找字符串
用法:
grep ‘apple‘ file -nw (在file中,全文匹配地查找字符串apple,找到之后打印出其行号)
grep ‘apple‘ dir/ -rHnw (在dir/目录下,全文匹配递归地查找字符串apple,找到之后打印出其所在文件名及行号)
grep ‘apple.*‘ dir/ -rHnw (在dir/目录下,全文匹配递归地查找以apple为开头的字符串,找到之后打印出其所在文件名及行号,注意:‘apple.*‘此处是正则表达式)

find
===============
作用:在指定目录下,查找文件
用法:
find dir/ -name "apple.c" (在dir/下找到名字为apple.c的文件)
find dir/ -name "*.c" (在dir/下找到名字后缀为.c的文件,注意:"*.c"此处是shell通配符)

时间: 2024-11-10 13:12:12

几个重要的shell命令:diff patch tar find grep的相关文章

shell命令之一天一见:grep

一. 简介 grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名.搜索的结果被送到屏幕,不影响原文件内容. grep可用于shell脚本,因为grep通过返回一个状态值来说明

diff命令和patch命令

Linux就这个范儿 2.9.5 文件对比命令——diff diff命令搭建网站离不开数据库,在Linux系统上我们使用源码安装了MySQL服务器.不久我们发现 Google发布了一系列MySQL补丁,这些补丁很好很强大,这时候我们迫不及待地要把新东西更新到系统上,那就用patch命令来打补丁吧.喝水不忘打井人,那补丁又是怎么做的呢?这个任务就需要文件对比命令diff来帮忙了.diff用来比较两个文本文件的差异,是代码版本管理的基石之一.diff采用动态规划算法实现差异比较,此算法的基础是最长公

几个频繁使用的命令tar/diff/patch/grep/find简单使用

tar/diff/patch/grep/find使用频繁,记录下几个例子 1. tar可打包,解包,压缩,解压功能 打包压缩命令:tar czf project.tar.gz projectdir 或tar cjf project.tar.bz2 project 解压解包命令:tar xzf project.tar.gz 或tar xjf project.tar.bz2 2. diff用来比较文件,比较目录,制作补丁 制作补丁:diff -urNwB projectRaw projectCook

diff patch 命令制作补丁

diff 命令 diff可以比较两个文件,并可同时记录下二者的区别.制作补丁时的一般用法和常见选项为: diff [选项] 源文件(夹) 目的文件(夹) -r:递归,设置后diff会将两个不同版本源代码目录中的所有对应文件都进行一次比较,包括子目录文件: -N:确保补丁文件将正确地处理已经创建或删除文件的情况: -u:一体化diff输出(参见例1) -E, -b, -w, -B, –strip-trailing-cr 忽略各种空白,可参见文档,按需选用. 例1,有如下两个差异文件: # vers

Linux之旅(1): diff, patch和quilt (下)

Linux之旅(1): diff, patch和quilt (下) 2 quilt 我们自己的项目能够用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件,但又不能直接向版本号管理工具提交代码.自己用版本号管理工具重建整个项目是不合适的,由于大多数代码都是别人维护的,比如Linux内核.我们仅仅是想管理好自己的补丁.这时能够使用quilt. 2.1 基本概念 quilt是一个帮助我们管理补丁的程序.quilt的命令格式相似于cvs: quilt 子命令 [參

苹果Mac OS系统shell命令大全介绍

基本命令 1.列出文件 ls 参数 目录名        例: 看看驱动目录下有什么:ls /System/Library/Extensions 参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件 2.转换目录 cd    例:想到驱动目录下溜达一圈   cd /System/Library/Extensions 3.建立新目录 mkdir 目录名     例:在驱动目录下建一个备份目录 backup     mkdir /System/Library/Extensions/backup

日志处理中一些shell命令技巧

日志处理中一些shell命令技巧 阴差阳错的做的日志分析,前途未卜的这段日子,唯一还有点意思的可能就是手动的处理大量日志.总结一下. 日志文件的输入是动则几个G的文本.从N个这样的文件中得到一个列表,一个数字,一个比例.在什么工具都没有情况下,用shell命令不仅是验证系统数据的准确性的方法,也是一个很好的学习过程. 使用cut命令切割日志行 下面的一行典型的apache访问日志: 120.51.133.125 - - [26/Apr/2013:12:20:06 +0800] "GET /ski

Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》

(一)文件创建命令 1.touch命令 例如:touch abc命令在本地目录中创建了一个名为abc的空文件 2.cp命令 cp命令允许我们把一个文件的内容复制到同名或不同名的文件中,复制得到的文件可以在任何目录.使用cp命令的一个风险是它会在不提示用户的情况下很容易覆盖掉不同目录中的文件 -r选项支持递归复制.例如:cp -ar /usr/share/doc/. /doc/ 将复制源目录中所有子目录以及相关文件 3.mv命令 mv命令实质上市给文件贴上不同的标签,例如:mv file1 fil

批量执行shell命令

虽然目前都实现了自动化如puppet saltstack在环境中的应用,但工作中不可避免的要自己写一些简单的批量执行shell命令的脚本. python paramiko模块是目前使用得较为顺手的模块,执行命令时基本无需要转换,直接将shell命令扔进去执行就OK 简单示例,10个线程同时执行ssh或scp动作,未设置timeout时间,如执行长时间无反应会导致脚本执行问题: #!/usr/bin/python # _*_ coding: utf-8 _*_ import paramiko im