Linux中的通配符(wildcards)允許用戶在命令行中處理文件名或路徑名時,不必精確指定每個文件。以下是一些常見的Linux通配符用法:
*
:匹配任意長度的任意字符。例如,*.txt
匹配所有以 .txt
結尾的文件。?
:匹配任意單個字符。例如,ab?d
匹配 abd
、abbd
、abtd
等。[...]
:匹配方括號內的任意一個字符。例如,[abc]
匹配 a
、b
或 c
。如果方括號內包含 -
,則需要使用轉義字符 \
,如 [a-z]
匹配所有小寫字母。{...}
:匹配大括號內的任意一個字符串。例如,file{1,2}
匹配 file1
和 file2
。~
:表示用戶的主目錄。例如,~/documents
指向當前用戶主目錄下的 documents
文件夾。#
:在shell腳本中表示注釋。例如,#!/bin/bash
表示這是一個bash腳本。\
:用于轉義特殊字符。例如,\.txt
匹配 .txt
(因為 .
在shell中具有特殊含義)。*.*
:匹配任意長度的任意字符,包括點號。例如,*.txt
匹配所有以 .txt
結尾的文件,file.*
匹配 file.txt
、file.doc
等。**
:在GNU find命令中表示遞歸搜索。例如,find . -name "*.txt" -type f
查找當前目錄及其子目錄下所有以 .txt
結尾的文件。!?()
:在GNU find命令中表示不匹配括號內的模式。例如,find . -name "!(file).txt"
查找當前目錄及其子目錄下所有不以 file.txt
結尾的文件。這些通配符可以與各種Linux命令結合使用,如 ls
、cp
、mv
、rm
、find
等,以實現批量文件操作。