小編給大家分享一下如何處理Linux文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Linux 提供了多種用于處理文件的命令,這些命令可以節省你的時間,并使你的工作不那么繁瑣。
當你查找文件時,find
可能會是第一個想到的命令,但是有時精心設計的 ls
命令會更好。想知道你昨天離開辦公室回家前調用的腳本么?簡單!使用 ls
命令并加上 -ltr
選項。最后一個列出的將是最近創建或更新的文件。
$ 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
如果你要查找的文件可能不在當前目錄中,那么 find
將比 ls
提供更好的選項,但它可能會輸出比你想要的更多結果。在下面的命令中,我們不搜索以點開頭的目錄(它們很多一直在更新),指定我們要查找的是文件(即不是目錄),并要求僅顯示最近一天 (-mtime -1
)更新過的文件。
$ find . -not -path '*/\.*' -type f -mtime -1 -ls 917517 0 -rwxrw-r-- 1 shs shs 683 Sep 23 11:00 ./newscript
注意 -not
選項反轉了 -path
的行為,因此我們不會搜索以點開頭的子目錄。
如果只想查找最大的文件和目錄,那么可以使用類似 du
這樣的命令,它會按大小列出當前目錄的內容。將輸出通過管道傳輸到 tail
,僅查看最大的幾個。
$ du -kx | egrep -v "\./.+/" | sort -n | tail -5918984 ./reports1053980 ./notes1217932 ./.cache31470204 ./photos39771212 .
-k
選項讓 du
以塊列出文件大小,而 x
可防止其遍歷其他文件系統上的目錄(例如,通過符號鏈接引用)。事實上,du
會先列出文件大小,這樣可以按照大小排序(sort -n
)。
使用 find
命令可以很容易地計數任何特定目錄中的文件。你只需要記住,find
會遞歸到子目錄中,并將這些子目錄中的文件與當前目錄中的文件一起計數。在此命令中,我們計數一個特定用戶(username
)的家目錄中的文件。根據家目錄的權限,這可能需要使用 sudo
。請記住,第一個參數是搜索的起點。這里指定的是用戶的家目錄。
$ find ~username -type f 2>/dev/null | wc -l35624
請注意,我們正在將上面 find
命令的錯誤輸出發送到 /dev/null
,以避免搜索類似 ~username/.cache
這類無法搜索并且對它的內容也不感興趣的文件夾。
必要時,你可以使用 maxdepth 1
選項將 find
限制在單個目錄中:
$ find /home/shs -maxdepth 1 -type f | wc -l387
使用 mv
命令可以很容易地重命名文件,但是有時你會想重命名大量文件,并且不想花費大量時間。例如,要將你在當前目錄的文件名中找到的所有空格更改為下劃線,你可以使用如下命令:
$ rename 's/ /_/g' *
如你懷疑的那樣,此命令中的 g
表示“全局”。這意味著該命令會將文件名中的所有空格更改為下劃線,而不僅僅是第一個。
要從文本文件中刪除 .txt 擴展名,可以使用如下命令:
$ rename 's/.txt//g' *
以上是“如何處理Linux文件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。