① linux里*.* 和*意思一樣嗎
對於不同的工具*的定義不同,而且並沒有統一的標准。
推薦使用 擴展的正則表達式 查找符合特定格式的字串,這個在linux裡面是統一的。
grep sed awk 等等很多軟體支持的都是 ERE (擴展正則表達式),可以看看《Linux就該這么學》詳細了解下。
② linux下使用通配符批量刪除文件
一、cd命令進入這個linux文件夾目錄。
二、打:
find . -type f -name *.log -mtime +x -exec rm -fv { } \;
命令作用:在當前目錄下查找x天前的後綴為log的文件並且刪除。
例:
find . -type f -name *.log -mtime +300 -exec rm -fv { } \;
查找300天前的後綴名為log的文件並且刪除。
命令詳細解釋:
. 在當前目錄下查找,如果要全盤查找的話,可以把.換成/,這樣前面的cd命令就不需要了。
-type f 查找的是普通文件,而不是文件夾
-name *.log 查找後綴為log的文件
-mtime +x 查找x天以前的文件,所以需要把這個x換成你自己需要查找的天數,比如30.你要刪除20090808以前的,就需要計算一下,它距離現在多少天。
-exec rm -fv { } \; 把查找的文件強制刪除
如果許可權不足,請以root身份運行命令。
如果是ubuntu,前面可以加sudo即可。
③ linux 通配符%.c和*.c區別
%.c是GUNmake語法層,表示的是所有以".c"結尾的文件
而*.c則是linux shell 語法層的,比如:rm -f *.o 類似的。
意思基本是一樣的,就是一個是GUNmake的一個是shell的
④ Linux命令環境中的通配符有哪些它們的不同點是什麼
通配符 1、基本的通配符有哪些? ·「?」可替代單個字元。 ·「*」可替代任意字元。 ·方括弧「[charset]」可替代charset集中的任何單個字元。 對最後一條做些解釋。[cChH]通配符便可替代c或h字元的大小寫形式。 通配符集還能描述介於字元對之間的所有字元。如「[a-z]」就可以代 替任意小寫字母,而[a-zA-Z]則可替代任意字母。注意可替代的字元 包括字元包括字元對之間的所有字元。 與DOS相比,UNIX的通配符機制要比DOS好得多。在DOS中,任何在「*」 之後,在「.」之彰的字元均被忽略,所以下面的指令將不能得到你想 象的結果。 del *bak.* 在DOS中,用戶只能用此命令刪除當前目前下的所有文件,除非系統要 求你不這樣做。而在UNIX系統中,「*」可替代包括0在內的任意數字的 字元,但一行中的其餘特徵也仍需匹配,因此「bak.*」可匹配 newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因為後 者不含「.」。這非常巧妙,可大大方便用戶,而「*bak」則可匹配以上 所有的詞條,包括newbak。 2、能在一條指令中用多個通配符嗎? 可以,如 rm a*out*tmp? 該命令可以刪除一系列臨時性的輸出文件,如ab.out.temp1、ab.out.temp1 等。 3、如何利用通配符使指令更靈活? UNIX可將有一定關的文件看作一集合的一部分,用戶可以用該集合去匹配。 所以,如果你需要刪除file1.temp、file2.temp……file9.temp,只須健入: rm file[0-9].temp 該技巧的用處在於可以用刪除那些相要刪除的文件。如果你每天都要為一個 非常重要的 資料庫 做一個「mp」報告,你把文件存入mp.date%h%d, 它包括一系列文件如下: mp.jun23 mp jun24 mp jun25 mp.jun26 再讓我們假設因為每個文件的容量都在100M左右,所以磁碟空間很快會被占滿, 因此需要每隔幾天刪去一些老的文件,只留下最近的兩個文件,為此,鍵入: rm –i *[34] 這條指令將刪去那些以「」開頭並以「3」或「4」結尾的文件。
⑤ linux通配符有幾種表達方式
通配符 1、基本的通配符有哪些? ·「?」可替代單個字元。 ·「*」可替代任意字元。 ·方括弧「[charset]」可替代charset集中的任何單個字元。 對最後一條做些解釋。[cChH]通配符便可替代c或h字元的大小寫形式。 通配符集還能描述介於字元對之間的所有字元。如「[a-z]」就可以代 替任意小寫字母,而[a-zA-Z]則可替代任意字母。注意可替代的字元 包括字元包括字元對之間的所有字元。 與DOS相比,UNIX的通配符機制要比DOS好得多。在DOS中,任何在「*」 之後,在「.」之彰的字元均被忽略,所以下面的指令將不能得到你想 象的結果。 del *bak.* 在DOS中,用戶只能用此命令刪除當前目前下的所有文件,除非系統要 求你不這樣做。而在UNIX系統中,「*」可替代包括0在內的任意數字的 字元,但一行中的其餘特徵也仍需匹配,因此「bak.*」可匹配 newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因為後 者不含「.」。這非常巧妙,可大大方便用戶,而「*bak」則可匹配以上 所有的詞條,包括newbak。 2、能在一條指令中用多個通配符嗎? 可以,如 rm a*out*tmp? 該命令可以刪除一系列臨時性的輸出文件,如ab.out.temp1、ab.out.temp1 等。 3、如何利用通配符使指令更靈活? UNIX可將有一定關的文件看作一集合的一部分,用戶可以用該集合去匹配。 所以,如果你需要刪除file1.temp、file2.temp……file9.temp,只須健入: rm file[0-9].temp 該技巧的用處在於可以用刪除那些相要刪除的文件。如果你每天都要為一個 非常重要的 資料庫 做一個「mp」報告,你把文件存入mp.date%h%d, 它包括一系列文件如下: mp.jun23 mp jun24 mp jun25 mp.jun26 再讓我們假設因為每個文件的容量都在100M左右,所以磁碟空間很快會被占滿, 因此需要每隔幾天刪去一些老的文件,只留下最近的兩個文件,為此,鍵入: rm –i *[34] 這條指令將刪去那些以「」開頭並以「3」或「4」結尾的文件。
⑥ linux中 正則表達式和通配符的區別
通配符
它是由shell解析,並且一般用於匹配文件名,實際上就是shell解釋器去解析的特殊符號,linux系統通配符有幾下幾種:
*:匹配任意多個字元
?:匹配任意一個字元
[...]:匹配中括弧內出現的任意一個字元
[!...]:不匹配中括弧內出現的任意一個字元
一般出現在要shell命令或腳本中,匹配特定的文件名
正則表達式
它是一個字元匹配標准,一些命令工具按此標准實現字元匹配,根據命令支持的匹配功能可分為基礎正則表達式和擴展正則表達式,常用於支持正則表達式的工具,如sed,grep,awk...
有如下一些常用的匹配元字元:
字元匹配
.:匹配任意單個字元
*:匹配其前面一個字元出現任意次
?:匹配其前面的字元1次或0次
+:匹配其前面一個字元出現至少一次(在擴展正則表達式中)
位置匹配
^:錨定行首
$:錨定行尾
\<或\b:錨定詞首,其後面的任意字元必須作為單詞首部出現
\>或\b:錨定詞尾,其前面的任意字元必須作為單詞尾部出現
\B:非單詞的開頭或結尾
^$:空白行
分組() :
(ab)* : 匹配ab這個分組出現任意次
\1:引用第一個左括弧以及與之對應的右括弧所包括的所有內容,同理還有\2,\3
特殊子字元類:
[:alnum:] :任何字母和數字
[:alpha:] :任何字母
[:cntrl:] :控制字元. 在ASCII表中對應八進制000 到 037, 和177 ('DEL').
[:digit:] :任何數字
[:graph:] :匹配列印字元,相當於'[:alnum:]' +'[:punct:]'.
[:lower:] :小寫字母
[:print:] :可列印字元,相當於 '[:alnum:]', '[:punct:]', 和space.
[:punct:] 標點符號,'! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ' { | } ~'
[:space:] 空白字元,tab, newline, vertical tab, form feed, carriage return, and space.
[:upper:] 大寫字母
[:xdigit:] 任何16進制的數字,相當於[0-9a-fA-F]
所以:^[[:space:]]*$ :匹配沒有任何內容的行
需要注意:[]中的特殊字元如.已經失去了其特殊含義,和方括弧中的普通字元[abc]一樣。
⑦ linux中的通配符[0-9]怎麼用舉一個例子
這個是屬於「正則表達式」的知識,你先找一下這方面的教程學習一下,
網路一下「正則表達式」即可。這是在編寫程序、查找和處理與字元串時的一項技術。
簡單一個例子吧。比如你想查找一份文件,具體的名字忘了,但記得文件名是數字開頭的,
那麼可以這樣查找這個文件:
find/-name"[0-9]*"
這樣就找出所有數字開頭的文件。
⑧ linux mv 通配符 如何指定前幾個文件
用正則匹配可以實現你的要求。具體如下:
結果顯示,實現了只移動5個文件的要求。
⑨ Linux:chmod -R 777 * 是什麼意思
首先,chmod命令是linux上用於改變許可權的命令,-R 是遞歸遍歷子目錄,因為你要操作的文件使用的*通配符。777,第一個7代表文件所屬者的許可權,第二個7代表文件所屬者所在組的許可權,第三個7代表其它用戶的許可權,7=4+2+1,在linux中許可權是可以通過數字來描述的。具體表示如下:
4,執行時設置用戶ID,用於授權給基於文件屬主的進程,而不是給創建此進程的用戶。
2,執行時設置用戶組ID,用於授權給基於文件所在組的進程,而不是基於創建此進程的用戶。
1,設置粘著位。
其次,chmod命令的詳細使用如下,有不懂的可以慢慢查看一下。
chmod----改變一個或多個文件的存取模式(mode)
chmod [options] mode files
只能文件屬主或特權用戶才能使用該功能來改變文件存取模式。mode可以是數字形式或以who opcode permission形式表示。who是可選的,默認是a(所有用戶)。只能選擇一個opcode(操作碼)。可指定多個mode,以逗號分開。
options:
-c,--changes
只輸出被改變文件的信息
-f,--silent,--quiet
當chmod不能改變文件模式時,不通知文件的用戶
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
--reference=filename
參照filename的許可權來設置許可權
-v,--verbose
無論修改是否成功,輸出每個文件的信息
--version
輸出版本信息。
who
u
用戶
g
組
o
其它
a
所有用戶(默認)
opcode
+
增加許可權
-
刪除許可權
=
重新分配許可權
permission
r
讀
w
寫
x
執行
s
設置用戶(或組)的ID號
t
設置粘著位(sticky bit),防止文件或目錄被非屬主刪除
u
用戶的當前許可權
g
組的當前許可權
o
其他用戶的當前許可權
作為選擇,我們多數用三位八進制數字的形式來表示許可權,第一位指定屬主的許可權,第二位指定組許可權,第三位指定其他用戶的許可權,每位通過4(讀)、2(寫)、1(執行)三種數值的和來確定許可權。如6(4+2)代表有讀寫權,7(4+2+1)有讀、寫和執行的許可權。
還可設置第四位,它位於三位許可權序列的前面,第四位數字取值是4,2,1,代表意思如下:
4,執行時設置用戶ID,用於授權給基於文件屬主的進程,而不是給創建此進程的用戶。
2,執行時設置用戶組ID,用於授權給基於文件所在組的進程,而不是基於創建此進程的用戶。
1,設置粘著位。
實例:
$ chmod u+x file 給file的屬主增加執行許可權
$ chmod 751 file 給file的屬主分配讀、寫、執行(7)的許可權,給file的所在組分配讀、執行(5)的許可權,給其他用戶分配執行(1)的許可權
$ chmod u=rwx,g=rx,o=x file 上例的另一種形式
$ chmod =r file 為所有用戶分配讀許可權
$ chmod 444 file 同上例
$ chmod a-wx,a+r file 同上例
$ chmod -R u+r directory 遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的許可權
$ chmod 4755 設置用ID,給屬主分配讀、寫和執行許可權,給組和其他用戶分配讀、執行的許可權。