您的位置:首页 > 其它

文件操作

2014-04-05 18:38 190 查看
显示文件内容

#cat : 显示文件
全部内容,可显示多个文件

-n number 显示行号
#tac : 倒着显示文件全部内容

#more : 分页显示文件内容(默认10行), 空格建翻页、回车键下一行
#less : 可按关键字查找,看长文件更好

#head : 查看文件开头的一部份内容(默认10行)

-n (number) + 文件名
#tail : 查看文件结尾的少部分内容(默认10行)

-n (number)+ /etc/passwd

-f (follow 跟踪) + /etc/passwd

高级用法

#head -n -N /etc/passwd:不显示最后N行

#tail -n +N /etc/passwd :从第N行开始显示

——————————————————————————————————————
文件查找

#which 查找
可执行文件 并显示所在的位置,搜索范围由 PATH环境 变量指定

#which + 命令 / 程序名

#whereis 查找文件的路径、该文件的帮助文件路径(原理与which类似)

#whereis + 命令 / 程序名

# locate 根据每天更新的数据库(/var/lib/mlocate)查找(每次开机都会更新数据库),速度快。注:不能找到新建文件,会找到已删文件

-b basename (最好加上)

:#locate -b passwd

#updatedb 手动更新数据库

#find 可快速查找文件和目录,会遍历每个子目录

#find [范围] [条件] [动作]

条件

-name 注:后面的关键字用“”括起

-size 大于用+;小于用 - 注:后面单位最好小一级

-type [bcKMG]

-user #find / -user zwb

-nouser 查找无主文件

-perm

-mtime

-newer

-maxdepth 查找深度(指定查找范围)

特殊查找条件

-o 逻辑或

-not = ! 逻辑非

-a 逻辑与(默认)

动作

-exec (execute) 将find查找的结果交给-exec后面的命令执行

-ok 与前者相同,但需要确认

:#find /home -user hello -exec ls -ld {} \;

{}:代表find的查询结果

\; :命令结束符

列出/boot目录下所有文件及目录, 前两者更简洁易读

1#find /boot 2#tree /boot 3#ls -R /boot

-mtime 详解

#find /usr -mtime +/- N

+: > N天

-:< N天

无+/-:= N天



:#find /usr -mtime 4 (表示4天前的那一天)

:#find /usr -mtime -4 (表示4天内)

:#find /usr -mtime +4 (表示4天前)

find -name 后的关键字为何最好加“” ?

#find /var/log -name *log (/var/log目录下有~.log文件,此时shell会将通配符解释成该目录下的文件名,然后进行查找,所以找不到匹配的关键字,所以关键字要使用“”

#find /var/log -name "*log"

————————————————————————————————————————————
压缩 和 备份文件

#gzip 压缩和解压文件 (少用)

#gzip [-n] 文件名 (n:1~9,压缩比,默认6)

#gzip -d .gz格式的压缩文件

-d --decpress
#zcat 查看压缩文件名

#zcat 压缩文件名

#bzip2 压缩和解压文件 (少用)

#bizp2 [-n] 文件名 (n:1~9 ,压缩比)

#bizp2 -d .bz2格式的压缩文件
#bzcat 查看压缩文件内容

#zcat 压缩文件名

#zip 压缩文件,可同时压缩多个文件(压缩至一个文件)

#zip 压缩文件名 被压缩文件1 被压所文件2 (可以不命名,压缩后自动添加后缀)

-r 压缩文件夹内的所有文件至一个文件

:#zip file.zip file1 file2

:#zip file.zip file3 (压缩追加的文件file3)

:#zip /root/file.zip file4 (指定目录下创建.zip文件)

#unzip 解压缩文件

-l --list 查看压缩文件内容

-d exdirectory 指定解压目录

:#unzip file.zip

:#unzip file.zip file3 解压file.zip中指定的文件

:#unzip file.zip -d /tmp

:#zip passwd.zip /etc/passwd

:#unzip /etc/passwd

提示信息“inflating: etc/passwd” (说明使用的是相对路径,即当前目录下解压出 etc/passwd ,而不会覆盖源文件)

#tar 制作归档文件,释放归档文件(即文件备份)

#tar [选项】 归档文件名 被归档文件或目录

#tar [选项】 归档文件名 [-C 目标目录] 被归档或需释放的文件

-c --create

-x extract

-v --verbose

-f --file

-t --lsit

-cvf -tvf -xvf

-r --append

-u --update

-p --preserve-permissions

-P --absolute-names

:#tar -cvf a.tar /etc/passwd 有提示信息

:#tar -xvf a.tar (此时会在当前目录下生成 etc/passwd,与unzip类似)

:# tar -cvf b.tar -C / passwd 无提示信息

:#tar -cvf b.tar (此时会在当前目录下只生成 passwd)

注:1.用tar 打包时注意绝对路径和相对路径,最好使用 相对路径(即不要使用-P选项),使用相对路径时会有提示信息 “tar: 从成员名中删除开头的“/” ”(并非错误)

2.用-z 或 j 压缩的文件(..tar.gz / ..tar.bz2),解压时用 tar -xvf 即可

3.tar对目录和文件都可以进行操作,gzip 和 bzip2 只能对文件进行操作

tar -rzf (错,不支持追加压缩)

——————————————————————————————————————————
文本差异对比
和 打补丁

#diff 比较两个文件之间的差异

输出结果为两个文件的不同之处

生成补丁

-u --unified 会将不同的地方放在一起,紧凑易读

-r --recursive 递归比较目录下的所有文件

-N --new-file 与空文件比较 (-Nur)

:#diff -u test1
4000
test2 > test.patch // 生成补丁

#patch 用以打补丁,修补文件

#patch [选项] 原始文件 < 补丁文件

-pN : N表示忽略N层路径

-R --reverse 还原到老版本

:#patch (-p0) wget-1.11.4/src/version.c < wget-1.11.4-rh1.patch // 打补丁

:#patch -R (-p0) wget-1.11.4/src/version.c < wget-1.11.4-rh1.patch //恢复

注:如果打多个补丁,注意先后顺序 ???

打补丁前不要修改源文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  补丁 diff cmd 压缩