一起学shell之(八-1)文件处理推荐

#———————————————————-#

# ==== 红色字体 -特指煮酒个人所见。加粗则为需要重点注意。#

# ==== 蓝色加粗 -特指与本文相关人员,包括参与修正的朋友。## ==== 煮酒品茶 -Http://cwtea.blog.51cto.com ##———————————————————-#

煮酒品茶:郁闷的紧,发布文章说使用什么沉余格式。分两章写,方可解决。

一起学shell之文件处理之二(八)

http://cwtea.blog.51cto.com/4500217/876617

序:7个小结,列出文件、使用touch更新修改时间、临时性文件的建立与使用、寻找文件、执行命令:xargs、文件系统的空间信息、比较文件。

Ls

语法:ls[options][file(s)]

用途:列出文件目录的内容。

主要选项:百度结果,可以manls查看。

——————————————————————————-

-a列出目录下的所有文件,包括以.开头的隐含文件。-b把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c输出文件的i节点的修改时间,并以此排序。-d将目录象文件一样显示,而不是显示其下的文件。-e输出时间的全部信息,而不是输出简略信息。-f-U对输出的文件不排序。-g无用。-i输出文件的i节点的索引信息。-k以k字节的形式表示文件的大小。-l列出文件的详细信息。-m横向输出文件名,并以 , 作分格符。-n用数字的UID,GID代替名称。-o显示文件的除组信息外的详细信息。-p-F在每个文件名后附上一个字符以说明该文件的类型, * 表示可执行的普通文件; / 表示目录; @ 表示符号链接; | 表示FIFOs; = 表示套接字(sockets)。-q用?代替不可输出的字符。-r对目录反向排序。-s在每个文件名后输出该文件的大小。-t以时间排序。-u以文件上次被访问的时间排序。-x按列输出,横向排序。-A显示除 . 和 .. 外的所有文件。-B不输出以 ~ 结尾的备份文件。-C按列输出,纵向排序。-G输出文件的组的信息。-L列出链接文件名而不是链接到的文件。-N不限制文件长度。-Q把输出的文件名用双引号括起来。-R列出所有子目录下的文件。-S以文件大小排序。-X以文件的扩展名(最后一个.后的字符)排序。-1一行只输出一个文件。–color=no不显示彩色文件名–help在标准输出上显示帮助信息。–version在标准输出上输出版本信息并退出。

—————————————————————–

注:Ls结果自适应shell窗口大小。

———————————————–

[root@bogon9wjcl]#echo\a

a

[root@bogon9wjcl]#echo\\a

\a

[root@bogon9wjcl]#echo\\\a

\a

————————————————

#隐藏文件

[root@bogon9wjcl]#touch.1.2.3

[root@bogon9wjcl]#ls

onethreetwo

[root@bogon9wjcl]#ls.*

.1.2.3

.:

onethreetwo

..:

51ctodown8csjb9wjcldownnginx

[root@bogon9wjcl]#echo*

onethreetwo

[root@bogon9wjcl]#echo.*

….1.2.3

[root@bogon9wjcl]#echo\.*

….1.2.3

[root@bogon9wjcl]#echo\\.*

\.*

[root@bogon9wjcl]#ls-d.*

….1.2.3

[root@bogon9wjcl]#ls-a

….1.2.3onethreetwo

[root@bogon9wjcl]#ls-l

总计0

-rw-r–r–1rootroot005-2117:48one

-rw-r–r–1rootroot005-2117:48three

-rw-r–r–1rootroot005-2117:48two

——————————————————————————

-l每行上的首字符描述为文件类型:-为一般文件,d为目录,l为符号连接,接下来9个为文件权限,w写x执行r为读。

第五栏以字节为单位的文件大小,六七八栏为最后修改时间、月、日、年。表示

———————-

显示完整的时间精准度:

[root@localhost~]#ls-l–full-time/bin/kill

-rwxr-xr-x1rootroot148642009-09-0403:52:31.000000000+0800/bin/kill

使用touch更新修改时间:百度参数

———————————————————————————-

http://www.linuxso.com/command/touch.html

touch-修改文件的时间戳记.总览touch[-acm][-rref_file(参照文件)|-ttime(时间值)]file(文件名)…被废弃的版本:touch[-acm][ugly_time]file(文件)…GNU版本:touch[-acfm][-rfile(参照文件)][-tdecimtime(时间值)][-dtime(时间值)][–time={atime,access,use,mtime,modify}][–date=time][–reference=file][–no-create][–help][–version][–]file(文件)…

————————————————-

[root@localhost~]#touch-t195002030000.00a

[root@localhost~]#ls-l–full-timea

-rw-r–r–1rootroot01950-02-0300:00:00.000000000+0800a

-r复制时间

[root@localhost~]#touch-rab

[root@localhost~]#ls-l–full-timeb

-rw-r–r–1rootroot01950-02-0300:00:00.000000000+0800b

临时性文件的建立与使用:

/tmp与/var/tmp

介绍:/tmp会在系统开机时清空,而/var/tmp仍然存在,因为有些文字编辑程序,会将它们的备份文件存放在这里,从而系统毁损后可以用来恢复数据。大部分系统会将/tmp放在常人存型的文件系统里,以便快速访问。安全问题应该设置/tmp的权限。

$$变量:

Trap

Mktemp:建立安全文件名。

/dev/random与/dev/urandom特殊文件

寻找文件:

快速寻找文件:

Locate

————————–

查看gcc所在地

[root@localhost~]#locategcc

/lib/libgcc_s-4.1.2-20080825.so.1

/lib/libgcc_s.so.1

/lib64/libgcc_s-4.1.2-20080825.so.1

/lib64/libgcc_s.so.1

/root/nginx/nginx-0.8.46/auto/cc/gcc

…………………………………………

寻找命令存储位置type:

调味用一个没有路径的命令时,它在文件系统的位置。

————————————————

[root@localhost~]#typegcc

gccis/usr/bin/gcc

[root@localhost~]#typetype

typeisashellbuiltin

[root@localhost~]#typenewgcc

-bash:type:newgcc:notfound

[root@localhost~]#typegcc

gccis/usr/bin/gcc

[root@localhost~]#typemypwd

-bash:type:mypwd:notfound

[root@localhost~]#typepwd

pwdisashellbuiltin

[root@localhost~]#typefoobar

-bash:type:foobar:notfound

——————————————-

Find查找

Find与其他UNIX命令最大的不同处在于:要查找的文件与目录,要放在参数列表的第一位,且目录几乎是递归地向下深入(寻找),最终要显示而选定名称的选项或操作放在命令行的最后。

1、find命令的一般形式为;

findpathname-options[-print-exec-ok…]

2、find命令的参数;

pathname:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print:find命令将匹配的文件输出到标准输出。-exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command'{}\;,注意{}和\;之间的空格。-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

———————————————————

-name按照文件名查找文件。-perm按照文件权限来查找文件。-prune使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。-user按照文件属主来查找文件。-group按照文件所属的组来查找文件。-mtime-n+n按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项。-nogroup查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。-nouser查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。-newerfile1!file2查找更改时间比文件file1新但比文件file2旧的文件。-type查找某一类型的文件,诸如:b-块设备文件。d-目录。c-字符设备文件。p-管道文件。l-符号链接文件。f-普通文件。-sizen:[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。-mount:在查找文件时不跨越文件系统mount点。-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

-aminn 查找系统中最后N分钟访问的文件 -atimen 查找系统中最后n*24小时访问的文件 -cminn 查找系统中最后N分钟被改变文件状态的文件 -ctimen 查找系统中最后n*24小时被改变文件状态的文件 -mminn 查找系统中最后N分钟被改变文件数据的文件 -mtimen 查找系统中最后n*24小时被改变文件数据的文件

取自:http://hi.baidu.com/minebin/blog/item/94671a361bffb8d7a3cc2bae.html

———————————————-

Find与ls和shell不同的地方:它没有隐藏文件的概念,点开头的文件名,find也能找到。另find不排序文件名。它以它读到目录的顺序依次显示。随机排序的。最后find处理目录时,它会自动弟宴深入目录结构,寻找在那之下的任何东西,除非你使用-prune选项要求不要这么做。

注:当使用find进行破坏性目的的shell脚本时必须彻底执行调试,例如在命令前插入echo。

—————————

查找s开头的文件名和文件

[root@localhosttest]#finds*

sub

sub/5

不要在此目录查找文件

[root@localhosttest]#find-prune

.

[root@localhosttest]#find.-prune

.

注:

-size选项必须接上一个数字参数,默认值以512字节为单位的大小。

-type选项必须接上一个单词母参数,以标明文件类型。

-follow选项要求find接上符号连接,你可以用此来找出断掉的连接:

-links选项要求接上一个整数,如未指定正负号,它会只选择具有指定数量的直接连接的文件,如果为负号、则只寻找连接数小于该数字(绝对值)的文件,如果是正号,则权选择连接数大于该数的文件。Find.-links+1

-atime\-ctime\-mtime选项必须接上一个以天为单位的整数,如果未指定正负号,即指确实的几天前,如果为负,则指少于该天数(绝对值)。为正,则大于该天数。一般用find.-mtime-7查改一周前修改过的文件。

——————————————————-

寻找文件大小块小于10(5120字节)的非空文件

[root@localhosttest]#find.-size+0-a-size-10

.

./sub

./sub/sub3

寻找空文件,或过去一年都未读取过的文件

[root@localhosttest]#find.-size0-o-atime+365

./.4

./2

./.3

./sub/5

./sub/sub3/6

./1

——————————————————–

寻找问题文件:-print0

—————————————————————————

将问题字符转换为可见的S与N

[root@localhosttest]#find-print0|tr’\n\0”SN\n’|sort

.

./1

./2

./.3

./.4

./sub

./sub/5

./sub/sub3

./sub/sub3/6

————————————————————-

煮酒品茶:好像没看出有问题,不知道是没有找到问题文件还是出错了。

最可怕的敌人,就是没有坚强的信念。

一起学shell之(八-1)文件处理推荐

相关文章:

你感兴趣的文章:

标签云: