rm 排除指定文件或文件夹
rm -r !(.git)
find 命令两个用法
find <指定目录> <指定条件> <指定动作>
$ find . -name 'my*' -ls
搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
find /etc -name "*.conf" find /etc ! -name "*.conf" find /etc -type d
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
cut OPTION... [FILE]... 切割 a list of bytes, characters, or fields(比如切割文件,或者多行字符串)
cut -d":" -f1
-d 指定分隔符。默认为 tab。 -f 选择第几个域
比如
find *.rmvb | cut -d"." -f1
输出 rmvg扩展的文件名
xargs 的一个常见用法
$ ls | xargs -t -i mv {} {}.bak
xargs 将前面命令的命令行输出(一般为字符串)作为后个命令的参数。
比如 ls | xargs ls。就是对ls输出的带空格的目录字符串输出作为后一个ls的参数,统一输出。
又比如 ls | xargs -i ls 就是对前面ls输出的每个目录(以空格区分)各自作为 后一个 ls的参数(默认使用{} 代替该参数),分别输出。
而 -t 表示在执行命令前打印该命令。
grep (global search regular expression(RE) and print out the line
全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
比如:
ls -l | grep '^a' 通过管道对ls -l输出的内容过滤,只显示以a开头的行。
grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。
grep -v 排除选择。如 ls -l | grep -v '^a' 。过滤不以 a开头的行。
for in循环
基本格式
for 变量 in 取值列表 do 各种操作 done
比如
for i in {1..100..2} do echo $i done
end