var list = [
{
"cmd": "cat",
"format": "cat [-AbeEnstTuv] fileName",
"params": [
"-n 由1开始对所有输出的行数编号。",
"-b 和-n相似,只不过对于空白行不编号。",
"-s 当遇到有连续两行以上的空白行,就代换为一行的空白行。",
"-v 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。",
"-E 在每行结束处显示 $。",
"-T 将 TAB 字符显示为 ^I。",
"-A 等价于 -vET。",
"-e 等价于\"-vE\"选项;",
"-t 等价于\"-vT\"选项;"
],
"desc": "用于连接文件并打印到标准输出设备上",
"example": ""
},
{
"cmd": "cd",
"format": "cd [dirName]",
"params": [
"~ 表示为 home 目录 的意思",
". 则是表示目前所在的目录",
".. 则表示目前目录位置的上一层目录"
],
"desc": "用于切换当前工作目录",
"example": ""
},
{
"cmd": "chmod",
"format": "chmod [-cfvR] file...",
"params": [
"-c 若该文件权限确实已经更改,才显示其更改动作",
"-f 若该文件权限无法被更改也不要显示错误讯息",
"-v 显示权限变更的详细资料",
"-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)"
],
"desc": "控制用户对文件的权限的命令。",
"example": ""
},
{
"cmd": "cp",
"format": "cp [options] source [dest|directory]",
"params": [
"-f 覆盖已经存在的目标文件而不给出提示",
"-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。",
"-i 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。",
"-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。"
],
"desc": "主要用于复制文件或目录",
"example": ""
},
{
"cmd": "find",
"format": "find path -option [-print] [ -exec -ok command] {} ;",
"params": [
"-time 在过去多少毫秒内被修改过的文件",
"-e 空的文件",
"-p 路径名称符合 p 的文件",
"-name 文件名称符合 name 的文件(即以递归的方式逐个变更)",
"-size 文件大小是n单位",
"-p 权限查询",
"-g 查询用户文件"
],
"desc": "用来在指定目录下查找文件",
"example": ""
},
{
"cmd": "grep",
"format": "grep [-bcdFGHilLnov][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>] [范本样式][文件或目录...]",
"params": [
"-A <显示行数>,除了显示符合范本样式的那一列之外,并显示该行之后的内容。",
"-b 在显示符合样式的那一行之前,标示出该行第一个字符的编号。",
"-B <显示行数>,除了显示符合样式的那一行之外,并显示该行之前的内容。",
"-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)",
"-c 计算符合样式的列数。",
"-C <显示行数>,除了显示符合样式的那一行之外,并显示该行之前后的内容。",
"-d <动作>,当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。",
"-F 将样式视为固定字符串的列表。",
"-G 将样式视为普通的表示法来使用。",
"-H 在显示符合样式的那一行之前,表示该行所属的文件名称。",
"-i 忽略字符大小写的差别。",
"-l 列出文件内容符合指定的样式的文件名称。",
"-L 列出文件内容不符合指定的样式的文件名称。",
"-n 在显示符合样式的那一行之前,标示出该行的列数编号。",
"-o 只显示匹配PATTERN 部分。",
"-v 显示不包含匹配文本的所有行。"
],
"desc": "用于查找文件里符合条件的字符串",
"example": ""
},
{
"cmd": "ls",
"format": "ls [params] [pathName]",
"params": [
"-a 显示所有文件及目录 (.开头的隐藏文件也会列出)",
"-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出",
"-r 将文件以相反次序显示(原定依英文字母次序)",
"-t 将文件依建立时间之先后次序列出",
"-A 同-a,但不列出 . (目前目录) 及 .. (父目录)",
"-F 在列出的文件名称后加一符号;例如可执行档则加 *, 目录则加 /",
"-R 若目录下有文件,则以下之文件亦皆依序列出"
],
"desc": "用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。",
"example": ""
},
{
"cmd": "mkdir",
"format": "mkdir [-p] dirName",
"params": [
"-p 确保目录名称存在,不存在的就建一个"
],
"desc": "用于创建目录",
"example": ""
},
{
"cmd": "mv",
"format": "mv [options] source [dest|directory]",
"params": [
"-b 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。",
"-i 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。",
"-f 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。",
"-n 不要覆盖任何已存在的文件或目录。",
"-u 当源文件比目标文件新或者目标文件不存在时,才执行移动操作"
],
"desc": "用来为文件或目录改名、或将文件或目录移入其它位置",
"example": ""
},
{
"cmd": "pwd",
"format": "pwd",
"params": [],
"desc": "用于显示工作目录",
"example": ""
},
{
"cmd": "rm",
"format": "rm [options] name...",
"params": [
"-i 删除前逐一询问确认",
"-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认",
"-r 将目录及以下之档案亦逐一删除"
],
"desc": "用于删除一个文件或者目录",
"example": ""
},
{
"cmd": "touch",
"format": " touch [-cm][-d<日期时间>][-r<参考文件或目录>] [文件或目录…]",
"params": [
"-m 改变档案的修改时间记录。",
"-c 假如目的档案不存在,不会建立新的档案",
"-d 设定时间与日期,可以使用各种不同的格式",
"-r 使用参考档的时间记录,与 --file 的效果一样"
],
"desc": "用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。",
"example": ""
}
]
var arr = []
var reg = new RegExp('c')
list.forEach(v => {
if (v.cmd.match('d')) {
arr.push(v)
}
})
console.log(arr)
console