成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Bash中使用[方括號] (一)

系統 Linux
看完花括號在命令行中的用法之后,現在我們繼續來看方括號([])在上下文中是如何發揮作用的。

[[262449]]

 這篇文章將要介紹方括號及其在命令行中的不同用法。

看完花括號在命令行中的用法之后,現在我們繼續來看方括號([])在上下文中是如何發揮作用的。

通配

方括號最簡單的用法就是通配。你可能在知道“Globbing”這個概念之前就已經通過通配來匹配內容了,列出具有相同特征的多個文件就是一個很常見的場景,例如列出所有 JPEG 文件:

  1. ls *.jpg

使用通配符wildcard來得到符合某個模式的所有內容,這個過程就叫通配。

在上面的例子當中,星號(*)就代表“0 個或多個字符”。除此以外,還有代表“有且僅有一個字符”的問號(?)。因此

  1. ls d*k*

可以列出 darklyducky,而且 darkduck 也是可以被列出的,因為 * 可以匹配 0 個字符。而

  1. ls d*k?

則只能列出 ducky,不會列出 darklydarkduck

方括號也可以用于通配。為了便于演示,可以創建一個用于測試的目錄,并在這個目錄下創建文件:

  1. touch file0{0..9}{0..9}

(如果你還不清楚上面這個命令的原理,可以看一下另一篇介紹花括號的文章

執行上面這個命令之后,就會創建 file000file001、……、file099 這 100 個文件。

如果要列出這些文件當中第二位數字是 7 或 8 的文件,可以執行:

  1. ls file0[78]?

如果要列出 file022file027file028file052file057file058file092file097file098,可以執行:

  1. ls file0[259][278]

當然,不僅僅是 ls,很多其它的命令行工具都可以使用方括號來進行通配操作。但在刪除文件、移動文件、復制文件的過程中使用通配,你需要有一點橫向思維。

例如將 file010file029 這 30 個文件復制成 archive010archive029 這 30 個副本,不可以這樣執行:

  1. cp file0[12]? archive0[12]?

因為通配只能針對已有的文件,而 archive 開頭的文件并不存在,不能進行通配。

而這條命令

  1. cp file0[12]? archive0[1..2][0..9]

也同樣不行,因為 cp 并不允許將多個文件復制到多個文件。在復制多個文件的情況下,只能將多個文件復制到一個指定的目錄下:

  1. mkdir archive
  2. cp file0[12]? archive

這條命令是可以正常運行的,但它只會把這 30 個文件以同樣的名稱復制到 archive/ 目錄下,而這并不是我們想要的效果。

如果你閱讀過我關于花括號的文章,你大概會記得可以使用 % 來截掉字符串的末尾部分,而使用 # 則可以截掉字符串的開頭部分。

例如:

  1. myvar="Hello World"
  2. echo Goodbye Cruel ${myvar#Hello}

就會輸出 Goodbye Cruel World,因為 #Hellomyvar 變量中開頭的 Hello 去掉了。

在通配的過程中,也可以使用這一個技巧。

  1. for i in file0[12]?;\
  2. do\
  3. cp $i archive${i#file};\
  4. done

上面的第一行命令告訴 Bash 需要對所有 file01 開頭或者 file02 開頭,且后面只跟一個任意字符的文件進行操作,第二行的 do 和第四行的 done 代表需要對這些文件都執行這一塊中的命令。

第三行就是實際的復制操作了,這里使用了兩次 $i 變量:第一次在 cp 命令中直接作為源文件的文件名使用,第二次則是截掉文件名開頭的 file 部分,然后在開頭補上一個 archive,也就是這樣:

  1. "archive" + "file019" - "file" = "archive019"

最終整個 cp 命令展開為:

  1. cp file019 archive019

最后,順帶說明一下反斜杠 \ 的作用是將一條長命令拆分成多行,這樣可以方便閱讀。

在下一節,我們會了解方括號的更多用法,敬請關注。


 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-04-22 14:39:05

BashLinux命令

2023-01-13 12:37:43

Bashshell花括號

2020-10-13 19:04:58

Bash信號捕獲Shell腳本

2022-12-02 14:30:24

Bash腳本數組

2023-07-20 15:37:50

Bash數組

2023-07-12 14:13:03

BashLinux

2022-12-14 10:08:00

BashLinux

2022-01-16 07:48:33

腳本Bash 工具

2023-03-14 08:17:40

Bash編程語言

2020-04-09 10:18:51

Bash循環Linux

2022-11-23 08:14:42

bash 腳本test 命令

2020-02-05 16:37:06

方括號Python方法

2020-02-05 14:17:48

Python數據結構JavaScript

2019-02-12 15:47:42

Bash尖括號命令

2019-03-18 15:53:11

BashLinux花括號

2018-12-14 10:00:16

BashLinux命令

2013-12-13 17:21:14

Lua腳本語言

2023-11-17 12:04:39

GORM并發

2023-04-12 15:25:09

Bytrace鴻蒙

2009-06-25 16:49:24

Hibernate
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品伊人 | 欧美中文字幕在线观看 | 91国内外精品自在线播放 | 欧美寡妇偷汉性猛交 | 精品一二三 | av性色 | 国产在线精品一区二区三区 | 亚洲美女一区 | 亚洲精品一区二区三区四区高清 | 日韩成人免费在线视频 | 国产精品毛片一区二区三区 | 成人久久久久 | 亚洲欧美视频一区二区 | 日韩欧美在线免费 | 999国产精品视频免费 | 曰批视频在线观看 | 热久久久久 | 国产探花在线观看视频 | 99久久久国产精品 | 五月激情婷婷网 | 欧美日韩中文字幕在线 | 国产精品视频 | 精品成人在线视频 | 国产在线中文字幕 | 亚洲精品字幕 | 亚洲综合色自拍一区 | 亚洲一区二区视频在线播放 | 国产精品亚洲一区 | 久久久久国产一区二区三区 | 亚洲午夜电影 | 国产一区二区精 | 久久久久久av | 国产黄色精品在线观看 | 国产精品日日摸夜夜添夜夜av | 中文字幕亚洲欧美日韩在线不卡 | 亚洲国产黄 | 天天弄天天操 | 免费的日批视频 | 久久一及片 | 国产免费观看视频 | 欧美视频在线播放 |