分享3 個處理 Linux 檔案的技巧

2021-09-28 23:30:07 字數 2174 閱讀 1073

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 -5

918984 ./reports

1053980 ./notes

1217932 ./.cache

31470204 ./photos

39771212 .

-k 選項讓 du 以塊列出檔案大小,而 x 可防止其遍歷其他檔案系統上的目錄(例如,通過符號鏈結引用)。事實上,du 會先列出檔案大小,這樣可以按照大小排序(sort -n)。

檔案計數

使用 find 命令可以很容易地計數任何特定目錄中的檔案。你只需要記住,find 會遞迴到子目錄中,並將這些子目錄中的檔案與當前目錄中的檔案一起計數。在此命令中,我們計數乙個特定使用者(username)的家目錄中的檔案。根據家目錄的許可權,這可能需要使用 sudo。請記住,第乙個引數是搜尋的起點。這裡指定的是使用者的家目錄。

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

35624

請注意,我們正在將上面 find 命令的錯誤輸出傳送到 /dev/null,以避免搜尋類似 ~username/.cache 這類無法搜尋並且對它的內容也不感興趣的資料夾。

必要時,你可以使用 maxdepth 1 選項將 find 限制在單個目錄中:

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

387

重新命名檔案

使用 mv 命令可以很容易地重新命名檔案,但是有時你會想重新命名大量檔案,並且不想花費大量時間。例如,要將你在當前目錄的檔名中找到的所有空格更改為下劃線,你可以使用如下命令:

$ rename 's/ /_/g' *
如你懷疑的那樣,此命令中的 g 表示「全域性」。這意味著該命令會將檔名中的所有空格更改為下劃線,而不僅僅是第乙個。

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

linux 命令列提供了許多用於處理檔案的有用選擇。請提出你認為特別有用的其他命令。

分享3 個處理 Linux 檔案的技巧

linux 提供了多種用於處理檔案的命令,這些命令可以節省你的時間,並使你的工作不那麼繁瑣。查詢檔案 當你查詢檔案時,find 可能會是第乙個想到的命令,但是有時精心設計的 ls 命令會更好。想知道你昨天離開辦公室回家前呼叫的指令碼麼?簡單!使用 ls 命令並加上 ltr 選項。最後乙個列出的將是最...

分享3 個處理 Linux 檔案的技巧

linux 提供了多種用於處理檔案的命令,這些命令可以節省你的時間,並使你的工作不那麼繁瑣。查詢檔案 當你查詢檔案時,find 可能會是第乙個想到的命令,但是有時精心設計的 ls 命令會更好。想知道你昨天離開辦公室回家前呼叫的指令碼麼?簡單!使用 ls 命令並加上 ltr 選項。最後乙個列出的將是最...

分享乙個linux的流量監測工具!!!(3)

這個配置檔案監控了 vsftpd,sshd,mysql,apache,postfix 服務,設定 web監控的埠是 2812 設定lvsheat qq.com 將接受到警告郵件。配置apache 的檢查資訊 mkdir var www monit echo hello var www monit t...