處理 Linux 檔案的 3 個技巧
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 -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
表示“全域性”。這意味著該命令會將檔名中的所有空格更改為下劃線,而不僅僅是第一個。
要從文字檔案中刪除 .txt 副檔名,可以使用如下命令:
$ rename 's/.txt//g' *
總結
Linux 命令列提供了許多用於處理檔案的有用選擇。請提出你認為特別有用的其他命令。
via: https://www.networkworld.com/article/3440035/3-quick-tips-for-working-with-linux-files.html
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:geekpi 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- Linux必學的60個命令(2)-檔案處理Linux
- Shell指令碼逐行處理文字檔案技巧指令碼
- Linux必學60個命令檔案處理(轉)Linux
- Linux學習之檔案處理命令(二)目錄處理命令 && 檔案處理命令Linux
- Python中檔案I/O高效操作處理的技巧Python
- 3、Webserver如何處理動態檔案WebServer
- Python3中檔案處理Python
- Linux文字處理技巧分享Linux
- Python處理CSV檔案的幾個方法Python
- Linux中利用csvquote處理csv檔案Linux
- Linux檔案管理知識:文字處理Linux
- 處理 JS 中 undefined 的 7 個技巧JSUndefined
- SHELL技巧:處理檔名中的那些空格
- [R]檔案處理
- bat處理檔案BAT
- bat檔案處理BAT
- UNIX的檔案處理(轉)
- linux 透過xmllint處理xml檔案LinuxXML
- linux入門必學檔案處理命令Linux
- Linux檔案處理三劍客之sedLinux
- Linux檔案處理三劍客之grepLinux
- Linux檔案處理三劍客之awkLinux
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列
- Linux學習之檔案處理命令(一) 目錄處理命令lsLinux
- 鐳速傳輸:企業檔案安全共享的3個技巧
- 3.python檔案操作及異常處理Python
- Python如何處理檔案的?Python
- 常見的檔案處理命令
- window 批處理檔案
- python處理檔案Python
- Go xml檔案處理GoXML
- python檔案處理Python
- python 檔案處理Python
- Python 檔案處理Python
- JAVA ZIP 處理檔案Java
- 批處理檔案命令
- 檔案處理函式函式
- Windows批處理檔案Windows