含子目录指令文件名搜索字符串
find . -name 文件名 | xargs grep 字符串
ls
详情显示所有文件+目录(无子目录),自动选择大小的单位。参数都啥意思我也忘了:
ls -ABhlp
紧凑(用逗号分隔)显示:
ls -m
每行一个:
ls -1
按自然数字排序,等同于
sort --version-sort -f
ls -v
以日期排序显示:
ls -ltr
or
ls -lt
只列出目录名,不显示文件名
ls -d */
find
-maxdepth how deep to search to
-mindepth how deep to search from
-mtime 指定文件修改日期。后面加'-数字'找到指定天数之后的,加'+数字'找到指定天数之前的
-mmin 指定文件修改分钟,与mtime类似
-atime,amin 与mtime,mmin类似,根据访问时间
-ctime,cmin 与mtime,mmin类似,根据状态变化时间
-newerXY 与xtime,xmin类似,时间根据更灵活
-ok 与exec相同,但是执行前进行询问
-exec command ; 分号需要转义,'{}'为搜索到的文件名
-delete delete files
-ls list files
-type d directories only
-type f normal files only
-user limit to owner
-printf too much, refer to manual
grep
在子目录中搜索文本:
查找当前目录及子目录下所有含指定字符的指定类型文件,显示文件名、行号,换色显示所查找字符:
grep -r --include=正则表达式 -n -C行数 --color=always "字符串" *
-C 表示前后多显示几行
如果想忽略大小写可加 -i
如果想按词查找可加 -w
同时过滤多个词:-E '词|词'。如果是Windows,用"替换'
如果想只显示文件名则用-l
正则表达式如:*.[ch]则所有后缀名为c或h的文件
xargs
对命令逐个运行输入(以空格分隔)。比如将find结果管道输出到xargs命令,后面加其它命令,就可以对所有找到的文件执行该命令
xargs 参数 命令 命令参数
参数:
-I 字符 将命令参数中对应字符替换为输入
--interactive
-p 确认每次运行命令
--no-run-if-empty
-r 如果没有非空格输入则不运行命令
--verbose
-t 显示每次运行的命令行
--null
-0 以空字符而非空格分隔输入,引号和反斜杠也视为普通字符