一、线上查询及帮助命令
man
man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
语法
man(选项)(参数)
选项
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信息;
-P:指定内容时使用分页程序;
-M:指定man手册搜索的路径。
参数
数字:指定从哪本man手册中搜索帮助;
关键字:指定要搜索帮助的关键字。
实例
我们输入man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输man ifconfig它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。man是按照手册的章节号的顺序进行搜索的,比如:
man sleep
只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:
man 3 sleep
help
help命令用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。
语法
help(选项)(参数)
选项 -s:输出短格式的帮助信息。仅包括命令格式。
参数
内部命令:指定需要显示帮助信息的shell内部命令。
实例 使用help命令显示shell内部echo命令的帮助信息,输入如下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[root@igougui ~]# help echo echo: echo [-neE] [arg ...] Write arguments to the standard output. Display the ARGs on the standard output followed by a newline. Options: -n do not append a newline -e enable interpretation of the following backslash escapes -E explicitly suppress interpretation of backslash escapes `echo' interprets the following backslash-escaped characters: \a alert (bell) \b backspace \c suppress further output \e escape character \f form feed \n new line \r carriage return \t horizontal tab \v vertical tab \\ backslash \0nnn the character whose ASCII code is NNN (octal). NNN can be 0 to 3 octal digits \xHH the eight-bit character whose value is HH (hexadecimal). HH can be one or two hex digits Exit Status: Returns success unless a write error occurs. |
二、文件和目录操作命令
ls
ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。
语法
ls(选项)(参数)
选项
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为隐藏,不会列出);
-A:显示除隐藏文件“.”和“..”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项;
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件; –file-type:与“-F”选项的功能相同,但是不显示“*”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-t:用文件和目录的更改时间排序;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理; –full-time:列出完整的日期与时间; –color[=WHEN]:使用不同的颜色高亮显示不同类型的。
参数
目录:指定要显示列表的目录,也可以是具体的文件。
实例
显示当前目录下非隐藏文件与目录
1 2 |
[root@igougui ~]# ls install.log install.log.syslog lnmp-install.log ma6174 pureftpd-install.log shell speedtest.py speedtest.py.1 vimrc.zip |
显示当前目录下包括隐藏文件在内的所有文件列表
1 2 3 4 5 |
[root@igougui ~]# ls -a . .bash_profile .cshrc ma6174 .pki speedtest.py .vim .vimrc_old .. .bashrc install.log .my.cnf pureftpd-install.log speedtest.py.1 .vim-fuf-data .vimrcori .bash_history .cache install.log.syslog .mysql_history .rnd .ssh .viminfo vimrc.zip .bash_logout .composer lnmp-install.log .pearrc shell .tcshrc .vimrc |
输出长格式列表
1 2 3 4 5 6 7 8 9 10 |
[root@igougui ~]# ls -1 install.log install.log.syslog lnmp-install.log ma6174 pureftpd-install.log shell speedtest.py speedtest.py.1 vimrc.zip |
显示文件的inode信息 索引节点(index inode简称为“inode”)是Linux中一个特殊的概念,具有相同的索引节点号的两个文本本质上是同一个文件(除文件名不同外)。
1 2 3 |
[root@igougui ~]# ls -i 262150 install.log 273400 lnmp-install.log 282061 pureftpd-install.log 282788 speedtest.py 282159 vimrc.zip 262152 install.log.syslog 268140 ma6174 533993 shell 282785 speedtest.py.1 |
水平输出文件列表
1 2 |
[root@igougui ~]# ls -m install.log, install.log.syslog, lnmp-install.log, ma6174, pureftpd-install.log, shell, speedtest.py, speedtest.py.1, vimrc.zip |
修改最后一次编辑的文件 最近修改的文件显示在最上面。
1 2 |
[root@igougui ~]# ls -t shell ma6174 speedtest.py.1 speedtest.py lnmp-install.log pureftpd-install.log install.log install.log.syslog vimrc.zip |
显示递归文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[root@igougui ~]# ls -R .: install.log install.log.syslog lnmp-install.log ma6174 pureftpd-install.log shell speedtest.py speedtest.py.1 vimrc.zip ./shell: gg.html scripts ./shell/scripts: 12.sh 99.sh case.sh freemem.sh jisuan.sh lanmp.sh log.txt md5.sh q.sh read.sh select.sh sum.sh while.sh 19 ab.sh file.sh gg.sh lamp.sh lnmp.sh md5char.sh p.sh read.exp red.sh send_user.exp test_pid.sh word.sh ./shell/scripts/19: 1 class.sh ping.sh randfile.sh ./shell/scripts/19/1: bttepbxpwn_mm.HTML gywueclxts_mm.HTML nwvhczcwuo_mm.HTML pyoxlcughg_mm.HTML suiyvwvrwf_mm.HTML clikphzcxn_mm.HTML hmiuzxxflk_mm.HTML odzsavgosi_mm.HTML rlthzolfrt_mm.HTML vkltougzfm_mm.HTML |
打印文件的UID和GID
1 2 3 4 5 6 7 8 9 10 11 |
[root@igougui ~]# ls -n total 2200 -rw-r--r--. 1 0 0 10284 Feb 23 2016 install.log -rw-r--r--. 1 0 0 3317 Feb 23 2016 install.log.syslog -rw-r--r--. 1 0 0 2053028 Nov 28 2016 lnmp-install.log -rw-r--r-- 1 0 0 87 Jun 15 05:42 ma6174 -rw-r--r--. 1 0 0 72303 Nov 24 2016 pureftpd-install.log drwxrwxr-x 3 500 500 4096 Jun 16 02:53 shell -rwxr-xr-x 1 0 0 43882 Dec 1 2016 speedtest.py -rw-r--r-- 1 0 0 43882 Dec 1 2016 speedtest.py.1 -rw-r--r-- 1 0 0 4074 Jul 17 2012 vimrc.zip |
列出文件和文件夹的详细信息
1 2 3 4 5 6 7 8 9 10 11 |
[root@igougui ~]# ls -l total 2200 -rw-r--r--. 1 root root 10284 Feb 23 2016 install.log -rw-r--r--. 1 root root 3317 Feb 23 2016 install.log.syslog -rw-r--r--. 1 root root 2053028 Nov 28 2016 lnmp-install.log -rw-r--r-- 1 root root 87 Jun 15 05:42 ma6174 -rw-r--r--. 1 root root 72303 Nov 24 2016 pureftpd-install.log drwxrwxr-x 3 centos centos 4096 Jun 16 02:53 shell -rwxr-xr-x 1 root root 43882 Dec 1 2016 speedtest.py -rw-r--r-- 1 root root 43882 Dec 1 2016 speedtest.py.1 -rw-r--r-- 1 root root 4074 Jul 17 2012 vimrc.zip |
列出可读文件和文件夹详细信息
1 2 3 4 5 6 7 8 9 10 11 |
[root@igougui ~]# ls -lh total 2.2M -rw-r--r--. 1 root root 11K Feb 23 2016 install.log -rw-r--r--. 1 root root 3.3K Feb 23 2016 install.log.syslog -rw-r--r--. 1 root root 2.0M Nov 28 2016 lnmp-install.log -rw-r--r-- 1 root root 87 Jun 15 05:42 ma6174 -rw-r--r--. 1 root root 71K Nov 24 2016 pureftpd-install.log drwxrwxr-x 3 centos centos 4.0K Jun 16 02:53 shell -rwxr-xr-x 1 root root 43K Dec 1 2016 speedtest.py -rw-r--r-- 1 root root 43K Dec 1 2016 speedtest.py.1 -rw-r--r-- 1 root root 4.0K Jul 17 2012 vimrc.zip |
显示文件夹信息
1 2 |
[root@igougui ~]# ls -ld dr-xr-x---. 9 root root 4096 Jun 20 03:24 . |
按时间列出文件和文件夹详细信息
1 2 3 4 5 6 7 8 9 10 11 |
[root@igougui ~]# ls -lt total 2200 drwxrwxr-x 3 centos centos 4096 Jun 16 02:53 shell -rw-r--r-- 1 root root 87 Jun 15 05:42 ma6174 -rw-r--r-- 1 root root 43882 Dec 1 2016 speedtest.py.1 -rwxr-xr-x 1 root root 43882 Dec 1 2016 speedtest.py -rw-r--r--. 1 root root 2053028 Nov 28 2016 lnmp-install.log -rw-r--r--. 1 root root 72303 Nov 24 2016 pureftpd-install.log -rw-r--r--. 1 root root 10284 Feb 23 2016 install.log -rw-r--r--. 1 root root 3317 Feb 23 2016 install.log.syslog -rw-r--r-- 1 root root 4074 Jul 17 2012 vimrc.zip |
按修改时间列出文件和文件夹详细信息
1 2 3 4 5 6 7 8 9 10 11 |
[root@igougui ~]# ls -ltr total 2200 -rw-r--r-- 1 root root 4074 Jul 17 2012 vimrc.zip -rw-r--r--. 1 root root 3317 Feb 23 2016 install.log.syslog -rw-r--r--. 1 root root 10284 Feb 23 2016 install.log -rw-r--r--. 1 root root 72303 Nov 24 2016 pureftpd-install.log -rw-r--r--. 1 root root 2053028 Nov 28 2016 lnmp-install.log -rwxr-xr-x 1 root root 43882 Dec 1 2016 speedtest.py -rw-r--r-- 1 root root 43882 Dec 1 2016 speedtest.py.1 -rw-r--r-- 1 root root 87 Jun 15 05:42 ma6174 drwxrwxr-x 3 centos centos 4096 Jun 16 02:53 shell |
按照特殊字符对文件进行分类
1 2 |
[root@igougui ~]# ls -F install.log install.log.syslog lnmp-install.log ma6174 pureftpd-install.log shell/ speedtest.py* speedtest.py.1 vimrc.zip |
列出文件并标记颜色分类
1 2 |
[root@igougui ~]# ls --color=auto install.log install.log.syslog lnmp-install.log ma6174 pureftpd-install.log shell speedtest.py speedtest.py.1 vimrc.zip |
cd
命令用来切换工作目录至dirname。 其中dirname表示可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。
语法
cd (选项) (参数)
选项
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
– 当仅实用”-“一个选项时,当前工作目录将被切换到环境变量”OLDPWD”所表示的目录。
实例
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd – 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/”;”..”为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
cp
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
语法 cp(选项)(参数)
选项
-a:此参数的效果和同时指定”-dpR”参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
参数
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
实例
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign .
所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。 将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1
将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -r /usr/men /usr/zh
交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中
cp -i /usr/men m*.c /usr/zh
我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:
cp aaa/* /bbb
复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
cp -r aaa/* /bbb
这次依然需要按Y来确认操作,但是没有忽略子目录。
cp -r -a aaa/* /bbb
依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
\cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。</pre>
find
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法
find(选项)(参数)
选项
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行; -printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为True;
-typ<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算; -user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
参数
起始目录:查找文件的起始目录。
实例
根据文件或者正则表达式进行匹配 列出当前目录及子目录下所有文件和文件夹
find .
在/home目录下查找以.txt结尾的文件名
find /home -name “*.txt”
同上,但忽略大小写
find /home -iname “*.txt”
当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . \( -name “*.txt” -o -name “*.pdf” \)
或
find . -name “*.txt” -o -name “*.pdf”
匹配文件路径或者文件
find /usr/ -path “*local*”
基于正则表达式匹配文件路径
find . -regex “.*\(\.txt\|\.pdf\)$”
同上,但忽略大小写
find . -iregex “.*\(\.txt\|\.pdf\)$”
否定参数
找出/home下不是以.txt结尾的文件
find /home ! -name “*.txt”
根据文件类型进行搜索
find . -type 类型参数
类型参数列表:
f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo
基于目录深度搜索
向下最大深度限制为3
find . -maxdepth 3 -type f
搜索出深度距离当前目录至少2个子目录的所有文件
find . -mindepth 2 -type f
根据文件时间戳进行搜索
find . -type f 时间戳
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
搜索最近七天内被访问过的所有文件
find . -type f -atime -7
搜索恰好在七天前被访问过的所有文件
find . -type f -atime 7
搜索超过七天内被访问过的所有文件
find . -type f -atime +7
搜索访问时间超过10分钟的所有文件
find . -type f -amin +10
找出比file.log修改时间更长的所有文件
find . -type f -newer file.log
根据文件大小进行匹配
find . -type f -size 文件大小单元
文件大小单元:
b —— 块(512字节)
c —— 字节
w —— 字(2字节)
k —— 千字节
M —— 兆字节
G —— 吉字节
搜索大于10KB的文件
find . -type f -size +10k
搜索小于10KB的文件
find . -type f -size -10k
搜索等于10KB的文件
find . -type f -size 10k
删除匹配文件
删除当前目录下所有.txt文件
find . -type f -name “*.txt” -delete
根据文件权限/所有权进行匹配
当前目录下搜索出权限为777的文件
find . -type f -perm 777
找出当前目录下权限不是644的php文件
find . -type f -name “*.php” ! -perm 644
找出当前目录用户tom拥有的所有文件
find . -type f -user tom
找出当前目录用户组sunk拥有的所有文件
find . -type f -group sunk
借助-exec选项与其他命令结合使用 找出当前目录下所有root的文件,并把所有权更改为用户tom
find .-type f -user root -exec chown tom {} \;
上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。 找出自己家目录下所有的.txt文件并删除
find $HOME/. -name “*.txt” -ok rm {} \;
上例中,-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。 查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中
find . -type f -name “*.txt” -exec cat {} \;> all.txt
将30天前的.log文件移动到old目录中
find . -type f -mtime +30 -name “*.log” -exec cp {} old \;
找出当前目录下所有.txt文件并以“File:文件名”的形式打印出来
find . -type f -name “*.txt” -exec printf “File: %s\n” {} \;
因为单行命令中-exec参数中无法使用多个命令,以下方法可以实现在-exec之后接受多条命令 -exec ./text.sh {} \;
搜索但跳出指定的目录 查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk
find . -path “./sk” -prune -o -name “*.txt” -print
find其他技巧收集
要列出所有长度为零的文件
find . -empty
mkdir
mv
pwd
rename
rm
rmdir
touch
tree
basename
dirname
chattr
lsattr
file
md5sum
三、查看文件及内容处理命令
cat
tac
more
less
head
tail
cut
split
paste
sort
uniq
wc
iconv
dos2unix
diff
vimdiff
rev
grep/egrep
join
tr
vi/vim
四、文件压缩及解压命令
tar
unzip
gzip
zip
五、信息显示命令
uname
hostname
dmesg
uptime
stat
du
df
top
free
date
cal
六、搜索文件命令
which
find
whereis
locate
七、用户管理命令
useradd
usermod
userdel
groupadd
passwd
chage
id
su
visudo
sudo
八、基础网络操作命令
telnet
ssh
scp
wget
ping
route
ifconfig
ifup
ifdown
netstat
ss
九、深入网络操作命令
nmap
lsof
mail
mutt
nslookup
dig
host
traceroute
tcpdump
十、有关磁盘与文件系统的命令
mount
umount
fsck
dd
dumpe2fs
dump
fdisk
parted
mkfs
partprobe
e2fsck
mkswap
swapon
swapoff
sync
resize2fs
十一、系统及用户权限相关命令
chmod
chown
chgrp
umask
十二、查看系统用户登陆信息的命令
whoami
who
w
last
lastog
users
finger
十三、内置命令及其它
echo
printf
rpm
yum
watch
alias
unalias
date
clear
history
eject
time
nc
xargs
exec
export
unset
type
bc
十四、系统管理与性能监视命令
chkconfig
vmstat
mpstat
isstat
sar
ipcs
ipcrm
strace
ltrace
十五、关机/重启/注销和查看系统信息的命令
shutdown
halt
poweroff
logout
exit
Ctrl+D
十六、进程管理相关命令
bg
fg
jobs
kill
killall
pkill
crontab
ps
pstree
nice
nohup
pgrep
runlevel
init
service