溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何處理Linux文件

發(fā)布時(shí)間:2021-10-27 16:21:27 來(lái)源:億速云 閱讀:136 作者:小新 欄目:系統(tǒng)運(yùn)維

小編給大家分享一下如何處理Linux文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Linux 提供了多種用于處理文件的命令,這些命令可以節(jié)省你的時(shí)間,并使你的工作不那么繁瑣。

查找文件

當(dāng)你查找文件時(shí),find 可能會(huì)是第一個(gè)想到的命令,但是有時(shí)精心設(shè)計(jì)的 ls 命令會(huì)更好。想知道你昨天離開(kāi)辦公室回家前調(diào)用的腳本么?簡(jiǎn)單!使用 ls 命令并加上 -ltr 選項(xiàng)。最后一個(gè)列出的將是最近創(chuàng)建或更新的文件。

$ ls -ltr ~/bin | tail -3-rwx------ 1 shs shs   229 Sep 22 19:37 checkCPU-rwx------ 1 shs shs   285 Sep 22 19:37 ff-rwxrw-r-- 1 shs shs  1629 Sep 22 19:37 test2

像這樣的命令將僅列出今天更新的文件:

$ ls -al --time-style=+%D | grep `date +%D`drwxr-xr-x  60 shs  shs       69632 09/23/19 .drwxrwxr-x   2 shs  shs     8052736 09/23/19 bin-rw-rw-r--   1 shs  shs         506 09/23/19 stats

如果你要查找的文件可能不在當(dāng)前目錄中,那么 find 將比 ls 提供更好的選項(xiàng),但它可能會(huì)輸出比你想要的更多結(jié)果。在下面的命令中,我們搜索以點(diǎn)開(kāi)頭的目錄(它們很多一直在更新),指定我們要查找的是文件(即不是目錄),并要求僅顯示最近一天 (-mtime -1)更新過(guò)的文件。

$ find . -not -path '*/\.*' -type f -mtime -1 -ls   917517      0 -rwxrw-r--   1 shs      shs          683 Sep 23 11:00 ./newscript

注意 -not 選項(xiàng)反轉(zhuǎn)了 -path 的行為,因此我們不會(huì)搜索以點(diǎn)開(kāi)頭的子目錄。

如果只想查找最大的文件和目錄,那么可以使用類(lèi)似 du 這樣的命令,它會(huì)按大小列出當(dāng)前目錄的內(nèi)容。將輸出通過(guò)管道傳輸?shù)?tail,僅查看最大的幾個(gè)。

$ du -kx | egrep -v "\./.+/" | sort -n | tail -5918984      ./reports1053980     ./notes1217932     ./.cache31470204    ./photos39771212    .

-k 選項(xiàng)讓 du 以塊列出文件大小,而 x 可防止其遍歷其他文件系統(tǒng)上的目錄(例如,通過(guò)符號(hào)鏈接引用)。事實(shí)上,du 會(huì)先列出文件大小,這樣可以按照大小排序(sort -n)。

文件計(jì)數(shù)

使用 find 命令可以很容易地計(jì)數(shù)任何特定目錄中的文件。你只需要記住,find 會(huì)遞歸到子目錄中,并將這些子目錄中的文件與當(dāng)前目錄中的文件一起計(jì)數(shù)。在此命令中,我們計(jì)數(shù)一個(gè)特定用戶(hù)(username)的家目錄中的文件。根據(jù)家目錄的權(quán)限,這可能需要使用 sudo。請(qǐng)記住,第一個(gè)參數(shù)是搜索的起點(diǎn)。這里指定的是用戶(hù)的家目錄。

$ find ~username -type f 2>/dev/null | wc -l35624

請(qǐng)注意,我們正在將上面 find 命令的錯(cuò)誤輸出發(fā)送到 /dev/null,以避免搜索類(lèi)似 ~username/.cache 這類(lèi)無(wú)法搜索并且對(duì)它的內(nèi)容也不感興趣的文件夾。

必要時(shí),你可以使用 maxdepth 1 選項(xiàng)將 find 限制在單個(gè)目錄中:

$ find /home/shs -maxdepth 1 -type f | wc -l387

重命名文件

使用 mv 命令可以很容易地重命名文件,但是有時(shí)你會(huì)想重命名大量文件,并且不想花費(fèi)大量時(shí)間。例如,要將你在當(dāng)前目錄的文件名中找到的所有空格更改為下劃線,你可以使用如下命令:

$ rename 's/ /_/g' *

如你懷疑的那樣,此命令中的 g 表示“全局”。這意味著該命令會(huì)將文件名中的所有空格更改為下劃線,而不僅僅是第一個(gè)。

要從文本文件中刪除 .txt 擴(kuò)展名,可以使用如下命令:

$ rename 's/.txt//g' *

以上是“如何處理Linux文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI