linux基础预先指令

📅 2026/7/13 22:26:46 👁️ 阅读次数 📝 编程学习
linux基础预先指令

联系方式:2278135632

1- 花括号 { }

花括号{ } 中以 , 号分割的字符 会与花括号前面的字符相连接,组成新的字符串

mkdir -pv nu/{bj,sh}

等同于:

mkdir -pv nu/bj mkdir -pv nu/dh

说明 :-p 是创建多级目录, -v 是提示创建完成

创建完成后可以使用 tree nu 查看nu的文件结构

nu ├── bj └── sh

花括号可以嵌套

mkdir -pv file/{file1/{file11,file12},file2}
file ├── file1 │ ├── file11 │ └── file12 └── file2

不同层级间用 / 分隔

用法二:

用于输出花括号的内容,用 … 连接字母 或数字

echo {A..Z}

输出顺序是按asall 码表输出的, 如下面会输出特殊字符

echo {A..z}
result : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z

所以输出字符时,将大小写分开

echo {a..z} {A..Z}

也能写成

echo {{a..z},{A..Z}}
result: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

我们也能定义递增数

echo {1..10..2}
result: 1 3 5 7 9

我们也可以控制输出长度一致

echo {001..20..2}
result : 001 003 005 007 009 011 013 015 017 019

组合序列的用法

echo {a..c}{0,3}
a0 a1 a2 a3 b0 b1 b2 b3 c0 c1 c2 c3

花括号之间不能有空格

ls 搭配花括号

ls {a..c}.jpg

查看a.jpg b.jpg c.jpg

2-文件通配符

显示当前目录下的所有以a开头的文件

file01 ├── a │ ├── ab │ ├── ba │ └── cd ├── a.jpg ├── b.jpg └── c.jpg

当我们进入该文件夹,使用ls *a 也会吧a的二级子目录也打开(同时出现了不是以a开头的所有文件)

a: ab ba cd a.jpg:

所以严谨的写法是 加上限定 -d

ls -d a*
a a.jpg

与 * 不同, ? 代表单个占位符号,而不是所有占位符

中括号 [ ]

?代表单个字符,[ ] 类似,也代表单个字符,区别不是任意单个字符而是指定范围内的单个字符,只要出现了 [ ] ,就必须要有一个字符, [ ] 中的字符有两种解释,当[ ] 中有多个字符 如:

ls [ab].jpg

首先, .jpg 前出现了 [ ],意味着 .jpg 前有一个字符,当指令执行时,bash 会搜索当前目录下是否有 a.jpg 和b.jpg 如果有 ,交给 ls 打印他们,如果其中一个没有,则不会打印没有的那个;如果都不匹配,就会报错。 而对花括号而言 { } ,只要其中一个不匹配 就会报错。

[ ] 是模糊匹配 中括号中是或的关系 ,个别文件没有不会报错,全不匹配才会报错,但此时的错误会将整个字符串当成一个文件的前缀来处理。

ls {a,b,c,d}.jpg 相当于ls a.jpg b.jpg c.jpg d.jpg 这是一种精确匹配;一旦有一个找不到就会报错 ls[abc].jpg 相当于找 a.jpg 或 b.jpg 或c.jpg 或abc.jpg

和花括号{} 相似 ,但是代表的是指定范围内的单个字符

ls [23].jpg

查看 2.jpg 3.jpg (如果存在的话)而不是23.jpg

ls [2-9].jpg

查看 2.jpg 3.jpg 。。。。。9.jpg (如果存在的话)

ls [1-25].jpg

说明: 查询的是 1 到2.jpg 和5.jpg .而不是 1到25.jpg

中括号代表的是单个字符

查找所有小写字母

ls [ [:lower: ]].jpg

查找所有大写字母

ls [ [: upper]:].jpg 外部的括号表示范围, 内部的括号是特殊通配符

查询所有大小写

ls [a-zA-Z].jpg //不需要空格,查询所有大小写 相当于 ls [ [:alpha:] ].jpg

注意 中括号中的单个字符不能是倒序 如:

ls [7-1].jpg //报错

中括号的其他用法

查询任意数字前缀的图片

ls [ [:digit:] ].jpg

查询任意大小写字母数字开头的图片

ls [a-zA-Z0-9] 或者 ls[ [:alnum:]].jpg

查询含有至少一个空格的前缀

ls *[ [:space:] ]*.jpg

查询至少含有一个标点符号的前缀

ls *[ [:punct:] ]*.jpg

可以使用 ^ 或者 ! 表示非的关系

ls [ ^[:alpha:] ].jpg 非大小写字母的前缀 图片 ls[ !0-9 ].jpg 非 0到9前缀 的图片 ls[ ![:digit:] ].jpg 非数字前缀的图片

码字 好累!!!!!!!!!!!!!!!!!!!!!!!

路径的表示

ls -d */

当前目录下的所有非隐藏目录

ls -d .*/

当前目录下的所有隐藏目录

ls -d .*

去掉文件分隔符 表示当前目录下的所有隐藏文件和目录

./ 或 .

表示当前目录