摘要:指定输出的分隔符使用,将作为文件名之间的分割符。这个命令的作用就是将的内容,作为其他命令的参数进行调用。比如结合命令命令的分隔符除了可能是之外,也可能是空格。在不指定文件名的情况下,接受作为输入源。比如上述命令应该修改为。
本文列明Linux的常用命令用法,学会了这些命令之后,结合shell编程知识,就可以做各种自动编译/集成的工作啦。
本文地址:https://segmentfault.com/a/1190000006078207
《Linux Shell 脚本攻略》
Linux中怎么找出空文件夹?
cat file1 file2 file3 ...
除了常有的用来显示文件内容之外,cat有两个妙用:
xxxx | cat - output.txt
本例中使用“-”表示stdin,用xxxx命令的输出重定向给cat
cat file1 | file2 > output.txt
将两个文本合并
cat -s input.txt
cat -n input.txtfind:查找文件
基本用法:file -name "xxx"。其中可以指定文件夹,比如find /dev/ -name ...。在BSD中,目标文件夹是必须指定的。在Linux中,则可以不指定,默认是当前文件夹。
如果要求忽略大小写,则使用选项-iname。name参数后面的字符串可以使用正则表达式。
可以使用-o选项来表示“OR”,并且用“(”和“)”作为条件整体括起来。如:
find (-name "aaa.txt" -o -name "aaa.doc" )
需要注意的是,(之后和)之前必须有空格
-name用于匹配文件名,但是可以使用-path用来匹配路径:
find ./ -path "*/doc/*"
如果要匹配正则表达式路径,则使用-regex或-iregex(忽略大小写)。此时已path而不是name方式搜寻。
可以指定“不”匹配条件,使用感叹号即可,如:
find ./ ! -name "*.txt"
-maxdepth和-mindepth,比如搜寻当前文件夹,则使用-maxdepth 1
-perm mode/+mode/-mode。其中mode是一个八进制数,对应chmod命令里面的mode。加号表示“任意一个位”,减号表示“所有1位匹配”,无符号表示“完整匹配”
find可以匹配文件类型:-type x,其中x可以是以下值:
f:file,文件
l:link,符号链接
d:directory,目录/文件夹
c:char,字符设备
b:block,块设备
s:socket
p:pipe
参数都是以下格式:-选项 天数,天数表示距离今天几天内。选项如下:
-atime:access time
-mtime:modification time
-ctime:change time(注:这个和mtime有啥区别?)
需要注意的是,UNIX中并没有“create time”的概念。
比如搜索7天内访问过的所有文件:find . -type f -atime -7
或者是访问超过7天的文件:find . -type f -atime +7
也可以是恰好7天:find . -type f -atime 7
上述参数是以天为单位的。下面几个参数以分钟为单位:
-amin, -mmin, -cmim
-size 参数
后面的参数可以用多种单位,比如c(char,字节)、k、M、G。比如查找大于2kB的文件:
find . -type f -size +2k
在find命令后面加上-delete参数,find会将匹配到的文件都删除掉。这个功能很有用,但是要小心用。
使用-exec对find的每一个目标进行操作,使用“{}”匹配每一个文件名。比如将所有带“configure”的文件加上执行权限:
find . -name "configure" -type f -exec chmod +x {}
说实话我觉得还不如使用xargs来得方便。
使用-print0,将