Coding ... ....

工作实操技巧 --- Shell

  • find 命令
    find命令非常好用,但是总是记不住一些参数,这里总结下,避免每次都要翻看其他人的博客,以下基本上是按我平时的使用频率排序的。
-name       filename         # 查找名为filename的文件
-iname      filename         # 查找名为filename的文件,忽略大小写
-type       b/d/c/p/l/f      # 查是块设备、目录、字符设备、管道、符号链接、普通文件

-exec       command          # 每找到一个满足条件,就执行一次命令
-ok         command          # 每找到一个满足条件,就以询问的方式执行命令
-regex                       # 使用正则表达式匹配

组合查找:
-a: and 
-o: or 
-not
eg: find . \( -name a.out -o -name '*.o' -o -name 'core' \) -exec rm {} \;
-perm                        # 按执行权限来查找
-user       username         # 按文件属主来查找
-group      groupname        # 按组来查找

-empty                       # 空的文件
-size       n[c]             # 查长度为n块[或n字节]的文件
-prune                       # 忽略某个目录

-mtime      -n(+n)           # 查找系统中最后 n*24 小时内容修改过的文件
-mmin       -n(+n)           # 查找系统中最后 n 分钟内内容修改过的文件
-atime      -n(+n)           # 查找系统中最后 n*24 小时访问过的文件
-amin       -n(+n)           # 查找系统中最后 n 分钟内访问过的文件
-ctime      -n(+n)           # 查找系统中最后 n*24 小时最后状态修改的文件
-cmin       -n(+n)           # 查找系统中最后 n 分钟内最后状态修改的文件

eg:
find 按文件修改时间查找文件
---(+n)----------|----------(n)----------|----------(-n)---
    (n+1)*24H前  |   (n+1)*24H~n*24H间    |      n*24H内
-depth                       # 使查找在进入子目录前先行查找完本目录
-ls                          # 按格式进行打印
-quit                        # 查找到一个就退出

-nogroup                     # 查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                      # 查无有效属主的文件,即文件的属主在/etc/passwd中不存
-fstype                      # 查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                       # 查文件时不跨越文件系统mount点
-newer      f1 !f2           # 查更改时间比f1新但比f2旧的文件
  • du 命令
    帮助文档
长选项必须使用的参数对于短选项时也是必需使用的。
  -a, --all                     输出所有文件的磁盘用量,不仅仅是目录
       --apparent-size           显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大。
  -B, --block-size=大小         使用指定字节数的块
  -b, --bytes                   等于--apparent-size --block-size=1
  -c, --total                   显示总计信息
  -D, --dereference-args        解除命令行中列出的符号连接
       --files0-from=F           计算文件F 中以NUL 结尾的文件名对应占用的磁盘空间  如果F 的值是"-",则从标准输入读入文件名
  -H                            等于--dereference-args (-D)
  -h, --human-readable          以可读性较好的方式显示尺寸(例如:1K 234M 2G)
       --si                      类似-h,但在计算时使用1000 为基底而非1024
  -k                            等于--block-size=1K
  -l, --count-links             如果是硬连接,就多次计算其尺寸
  -m                            等于--block-size=1M
  -L, --dereference             找出任何符号链接指示的真正目的地
  -P, --no-dereference          不跟随任何符号链接(默认)
  -0, --null                    将每个空行视作0 字节而非换行符
  -S, --separate-dirs           不包括子目录的占用量
  -s, --summarize               只分别计算命令列中每个参数所占的总用量
  -x, --one-file-system         跳过处于不同文件系统之上的目录
  -X, --exclude-from=文件       排除与指定文件中描述的模式相符的文件
       --exclude=PATTERN         排除与PATTERN 中描述的模式相符的文件
       --max-depth=N             显示目录总计(与--all 一起使用计算文件)当N为指定数值时计算深度为N;
       --max-depth=0             等于--summarize
       --time                    显示目录或该目录子目录下所有文件的最后修改时间
       --time=WORD               显示WORD 时间,而非修改时间:atime,access,use,ctime 或status
       --time-style=样式         按照指定样式显示时间(样式解释规则同"date"命令):full-iso,long-iso,iso,+FORMAT
       --help                    显示此帮助信息并退出
       --version                 显示版本信息并退出

[xxx@localhost tmp]$ du  -h --max-depth=0 .
202M	.
[xxx@localhost tmp]$ du  -h --max-depth=1 .
4.0K	./.ICE-unix
720K	./swtlib-64
36K	./hsperfdata_packer
8.0K	./pear
4.0K	./jna--995865466
4.0K	./.local
200M	./gradle-4.4
202M	.
版权声明:本文为博主原创文章,转载请说明出处。
http://pipe.b3log.org/blogs/like290/articles/2018/07/31/1533017513198

514 浏览
0评论                
评论
留下你的脚步
0