Linux 下三種提高作業效率的檔案處理技巧

在 Linux 下作業,打交道最多的就是檔案了,畢竟 Linux 下作業一切皆檔案嘛,Linux 也為大家提供了多種用于處理檔案的命令,合理使用這些命令可以大大節省你的時間,并讓我們的作業負擔不再那么沉重,
尋找檔案的技巧
當我們查找檔案時,第一時間想到的肯定是 find 命令,但是如果我們搜索的路徑范圍比較大時,花費的時間會比較多,在這個情況下 find 命令就不是最優的方式了,
我們可以使用 ls 快速找到近期更新的檔案,比如,想知道自己昨天離開辦公室回家前呼叫的腳本嗎?小case嘛!使用 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 更加靈活強大,但是,find 命令的輸出結果可能會比較多,我們可以使用它的一些選項來過濾掉自己不想要的結果,
比如,在下面的命令中,我們不搜索以點開頭的目錄(即隱藏目錄),指定我們要查找的是檔案而不是目錄,并要求僅顯示最近一天更新過的檔案,
命令如下:
$ 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 -5
918984 ./reports
1053980 ./notes
1217932 ./.cache
31470204 ./photos
39771212 .
-k 選項讓 du 以塊列出檔案大小,而 x 可防止其遍歷其他檔案系統上的目錄(例如,通過符號鏈接參考),命令運行后,du 命令會先列出檔案大小,然后再呼叫 sort -n 來按照大小排序,
統計檔案數量的技巧
使用 find 命令可以很容易地計數任何特定目錄中的檔案,不過大家要注意的是,find 會遞回到子目錄中,并將這些子目錄中的檔案與當前目錄中的檔案一起計數,
比如,我們想計數一個特定用戶(alvin)的主目錄中的檔案,我們可以先用 find 命令找到檔案,再用 wc 命令進行統計,
$ find /home/alvin -type f 2>/dev/null | wc -l
35624
請注意,我們將 find 命令的錯誤輸出發送到 /dev/null,為了避免搜索類似 ~/.cache 這類無法搜索并且對它的內容也不感興趣的檔案夾,
必要時,我們可以使用 -maxdepth 1 選項將 find 搜索范圍限制在單個目錄中,或者也可以將其設定為自己想要搜索的深度:
$ find /home/alvin -maxdepth 1 -type f | wc -l
387
檔案重命名的技巧
使用 mv 命令可以很容易地重命名一個檔案,但是有時我們想重命名大量檔案,并且不想花費大量時間,要怎么操作呢?這個時候 rename 命令就要派上用場了,
例如,我們想要將當前目錄下所有檔案的檔案名中含有空格的全部更改為下劃線,大家可以使用如下命令:
$ rename 's/ /_/g' *
大家應該能想到,此命令列中的 g 代表「全域」,這就意味著該命令會將檔案名中的所有空格更改為下劃線,而不僅僅是第一個,
如果我們想要把文本的檔案洗掉掉 .txt 擴展名,可以使用如下命令:
$ rename 's/.txt//g' *
看完的都是真愛,點個贊再走唄?您的「三連」就是良許持續創作的最大動力!
- 關注原創公眾號「良許Linux」,第一時間獲取最新Linux干貨!
- 公眾號后臺回復【資料】【面試】【簡歷】獲取精選一線大廠面試、自我提升、簡歷等資料,
- 關注我的博客:lxlinux.net
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/75435.html
標籤:Linux
上一篇:容器技術之Docker鏡像
