自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux下find與exec的聯(lián)手干大事

系統(tǒng) Linux
我們想用find命令找到相關(guān)文件,再作進(jìn)一步操作,該如何進(jìn)行呢?這時(shí)候exec命令就派上用場(chǎng)。

在Linux下工作,find命令絕對(duì)是一個(gè)非常高頻的命令。我們可以用find命令來(lái)找到符合某些關(guān)鍵詞的文件,找到某些日期的文件,也可以設(shè)定一些正則表達(dá)式,找到一系列滿足該條件的文件。

但是,如果只有一個(gè)find命令的話,我們僅能將文件找出來(lái),列在終端里。僅一個(gè)find命令還不足以再做進(jìn)一步的操作。

[[342053]]

比如說(shuō),我們想把項(xiàng)目文件夾里的中間文件(*.o文件)找出來(lái),再把它們?nèi)縿h除;再如,我們想把日志文件夾下3天以上的日志全部轉(zhuǎn)移到指定文件夾下;等等諸如此類的需求,還有非常多。

像這樣的,我們想用find命令找到相關(guān)文件,再作進(jìn)一步操作,該如何進(jìn)行呢?這時(shí)候exec命令就派上用場(chǎng)。

我們先來(lái)看看exec的基本用法。

-exec參數(shù)后面跟的就是我們想進(jìn)一步操作的命令,比如rm,mv等等。exec是以分號(hào)";"作為結(jié)束標(biāo)識(shí)符的,考慮到各個(gè)系統(tǒng)平臺(tái)對(duì)分號(hào)的不同解釋,我們?cè)诜痔?hào)前再加個(gè)反斜杠,便于移植。而在分號(hào)前,通常也會(huì)有一對(duì)花括號(hào){},代表前面find命令查找出來(lái)的文件各。

我們直接通過(guò)幾個(gè)實(shí)例來(lái)講解find與exec聯(lián)合用法。為了演示的方便,我們假定有如下的一個(gè)項(xiàng)目文件夾:

Linux下find與exec的聯(lián)手干大事

實(shí)例1:使用find命令查找相關(guān)文件后,再使用ls命令將它們的詳細(xì)信息列出來(lái)

我們現(xiàn)在想把當(dāng)前目錄下所有的.o文件全部找出來(lái),并用 ls -l 命令將它們列出來(lái)。實(shí)現(xiàn)這個(gè)需求的命令如下:

  1. find . -name "*.o" -type f -exec ls -l {} \; 

結(jié)果如下:

Linux下find與exec的聯(lián)手干大事

在這里,我們用find 命令匹配到了當(dāng)前目錄下的所有.o文件,并在 -exec 選項(xiàng)中使用 ls -l 命令將它們的詳細(xì)信息列出來(lái)。

實(shí)例2:使用find命令查找相關(guān)文件后,再使用rm命令將它們刪除

我們現(xiàn)在想把當(dāng)前目錄下所有的.o文件全部找出來(lái),并用rm命令將它們刪除。實(shí)現(xiàn)這個(gè)需求的命令如下:

  1. find . -name "*.o" -exec rm {} \; 

執(zhí)行完這個(gè)命令后,該目錄下所有的.o文件都被刪除。由于這個(gè)動(dòng)作完成后也不會(huì)有任何提示,所以就沒(méi)有截圖的必要了。

實(shí)例3:使用-exec選項(xiàng)的安全模式,將對(duì)每個(gè)匹配到的文件進(jìn)行操作之前提示用戶

在實(shí)例2中,我們匹配到文件后就立刻執(zhí)行rm命令,這樣操作有些危險(xiǎn),因?yàn)槿绻坏┱`操作,有可能會(huì)引起災(zāi)難性的后果。

exec的安全模式就是為了避免這個(gè)問(wèn)題而產(chǎn)生。它會(huì)在匹配到某個(gè)文件后,在進(jìn)行操作之前會(huì)先問(wèn)一下你,經(jīng)過(guò)你的確認(rèn)它才會(huì)進(jìn)行相應(yīng)操作。

同樣的實(shí)例2的需求,如果采用安全模式的話,命令是這樣的:

  1. find . -name "*.o" -ok rm {} \; 

執(zhí)行結(jié)果如下:

實(shí)例4:搜索匹配到的文件中的關(guān)鍵內(nèi)容

假如我現(xiàn)在有個(gè)很大型的項(xiàng)目(如Linux內(nèi)核),我想在里面搜索一個(gè)含有某關(guān)鍵字的文件。我們可以使用grep命令檢索所有的文件。這樣做肯定是可以的,但如果項(xiàng)目很大的話,這樣太耗時(shí)了,效率太低。

我們可以先用find命令找到所以相關(guān)文件,然后再用grep命令檢索那些文件即可。因?yàn)橐呀?jīng)使用find過(guò)濾一遍了,所以這樣操作會(huì)節(jié)約很多時(shí)間,提高效率。

命令如下:

  1. find . -name "*.h" -exec grep -rns "hello" {} \; 

結(jié)果如下:

實(shí)例5:查找文件并移動(dòng)到指定目錄

這個(gè)需求就比較簡(jiǎn)單了。比如我現(xiàn)在想把所有的.o文件找出來(lái),然后新他們mv到buil目錄。命令如

下:

  1. find . -name "*.o" -exec cp {} build \; 

結(jié)果如下:

本文授權(quán)轉(zhuǎn)載自公眾號(hào)「良許Linux」。良許,世界500強(qiáng)外企Linux開(kāi)發(fā)工程師,公眾號(hào)里分享大量Linux干貨,歡迎關(guān)注!

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2023-08-08 15:09:58

2016-05-24 17:03:48

2021-12-21 21:16:30

LinuxLinux大事

2014-08-06 15:25:36

LinuxNagios

2020-09-16 23:04:32

Linux創(chuàng)建用戶主adduser

2021-12-26 14:52:19

Linux操作系統(tǒng)

2009-08-03 10:12:37

find命令詳解find命令linux

2009-09-16 08:43:51

linux進(jìn)程線程

2012-09-21 14:00:30

紅帽Linux

2009-08-03 09:20:18

find命令詳解find命令linux find命

2023-12-14 10:10:09

pythonRedis開(kāi)發(fā)

2011-01-07 16:49:13

LinuxWindows庫(kù)

2010-03-09 13:54:05

Linux find命

2011-08-16 16:45:18

2021-05-27 09:41:31

蘋果 谷歌微軟

2009-06-29 13:57:28

linuxapachephp

2017-12-26 11:13:41

Linuxfind文件查找

2010-03-18 16:34:33

Linux命令

2013-10-08 16:24:34

Linux find命

2017-12-27 09:40:32

Linuxfind命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)