Linux命令行快速技巧之定位一個(gè)文件的方法
我們都會(huì)有文件存儲(chǔ)在電腦里 —— 目錄、相片、源代碼等等。它們是如此之多。也無(wú)疑超出了我的記憶范圍。要是毫無(wú)目標(biāo),找到正確的那一個(gè)可能會(huì)很費(fèi)時(shí)間。在這篇文章里我們來(lái)看一下如何在命令行里找到需要的文件,特別是快速找到你想要的那一個(gè)。
好消息是 Linux 命令行專(zhuān)門(mén)設(shè)計(jì)了很多非常有用的命令行工具在你的電腦上查找文件。下面我們看一下它們其中三個(gè):ls、tree 和 find。
ls
如果你知道文件在哪里,你只需要列出它們或者查看有關(guān)它們的信息,ls 就是為此而生的。
只需運(yùn)行 ls 就可以列出當(dāng)下目錄中所有可見(jiàn)的文件和目錄:
$ ls Documents Music Pictures Videos notes.txt
添加 -l 選項(xiàng)可以查看文件的相關(guān)信息。同時(shí)再加上 -h 選項(xiàng),就可以用一種人們易讀的格式查看文件的大?。?/p>
$ ls -lh total 60K drwxr-xr-x 2 adam adam 4.0K Nov 2 13:07 Documents drwxr-xr-x 2 adam adam 4.0K Nov 2 13:07 Music drwxr-xr-x 2 adam adam 4.0K Nov 2 13:13 Pictures drwxr-xr-x 2 adam adam 4.0K Nov 2 13:07 Videos -rw-r--r-- 1 adam adam 43K Nov 2 13:12 notes.txt
ls 也可以搜索一個(gè)指定位置:
$ ls Pictures/ trees.png wallpaper.png
或者一個(gè)指定文件 —— 即便只跟著名字的一部分:
$ ls *.txt notes.txt
少了點(diǎn)什么?想要查看一個(gè)隱藏文件?沒(méi)問(wèn)題,使用 -a 選項(xiàng):
$ ls -a . .bash_logout .bashrc Documents Pictures notes.txt .. .bash_profile .vimrc Music Videos
ls 還有很多其他有用的選項(xiàng),你可以把它們組合在一起獲得你想要的效果??梢允褂靡韵旅盍私飧啵?/p>
$ man ls
tree
如果你想查看你的文件的樹(shù)狀結(jié)構(gòu),tree 是一個(gè)不錯(cuò)的選擇??赡苣愕南到y(tǒng)上沒(méi)有默認(rèn)安裝它,你可以使用包管理 DNF 手動(dòng)安裝:
$ sudo dnf install tree
如果不帶任何選項(xiàng)或者參數(shù)地運(yùn)行 tree,將會(huì)以當(dāng)前目錄開(kāi)始,顯示出包含其下所有目錄和文件的一個(gè)樹(shù)狀圖。提醒一下,這個(gè)輸出可能會(huì)非常大,因?yàn)樗诉@個(gè)目錄下的所有目錄和文件:
$ tree . |-- Documents | |-- notes.txt | |-- secret | | `-- christmas-presents.txt | `-- work | |-- project-abc | | |-- README.md | | |-- do-things.sh | | `-- project-notes.txt | `-- status-reports.txt |-- Music |-- Pictures | |-- trees.png | `-- wallpaper.png |-- Videos `-- notes.txt
如果列出的太多了,使用 -L 選項(xiàng),并在其后加上你想查看的層級(jí)數(shù),可以限制列出文件的層級(jí):
$ tree -L 2 . |-- Documents | |-- notes.txt | |-- secret | `-- work |-- Music |-- Pictures | |-- trees.png | `-- wallpaper.png |-- Videos `-- notes.txt
你也可以顯示一個(gè)指定目錄的樹(shù)狀圖:
$ tree Documents/work/ Documents/work/ |-- project-abc | |-- README.md | |-- do-things.sh | `-- project-notes.txt `-- status-reports.txt
如果使用 tree 列出的是一個(gè)很大的樹(shù)狀圖,你可以把它跟 less 組合使用:
$ tree | less
再一次,tree 有很多其他的選項(xiàng)可以使用,你可以把他們組合在一起發(fā)揮更強(qiáng)大的作用。man 手冊(cè)頁(yè)有所有這些選項(xiàng):
$ man tree
find
那么如果不知道文件在哪里呢?就讓我們來(lái)找到它們吧!
要是你的系統(tǒng)中沒(méi)有 find,你可以使用 DNF 安裝它:
$ sudo dnf install findutils
運(yùn)行 find 時(shí)如果沒(méi)有添加任何選項(xiàng)或者參數(shù),它將會(huì)遞歸列出當(dāng)前目錄下的所有文件和目錄。
$ find . ./Documents ./Documents/secret ./Documents/secret/christmas-presents.txt ./Documents/notes.txt ./Documents/work ./Documents/work/status-reports.txt ./Documents/work/project-abc ./Documents/work/project-abc/README.md ./Documents/work/project-abc/do-things.sh ./Documents/work/project-abc/project-notes.txt ./.bash_logout ./.bashrc ./Videos ./.bash_profile ./.vimrc ./Pictures ./Pictures/trees.png ./Pictures/wallpaper.png ./notes.txt ./Music
但是 find 真正強(qiáng)大的是你可以使用文件名進(jìn)行搜索:
$ find -name do-things.sh ./Documents/work/project-abc/do-things.sh
或者僅僅是名字的一部分 —— 像是文件后綴。我們來(lái)找一下所有的 .txt 文件:
$ find -name "*.txt" ./Documents/secret/christmas-presents.txt ./Documents/notes.txt ./Documents/work/status-reports.txt ./Documents/work/project-abc/project-notes.txt ./notes.txt
你也可以根據(jù)大小尋找文件。如果你的空間不足的時(shí)候,這種方法也許特別有用?,F(xiàn)在來(lái)列出所有大于 1 MB 的文件:
$ find -size +1M ./Pictures/trees.png ./Pictures/wallpaper.png
當(dāng)然也可以搜索一個(gè)具體的目錄。假如我想在我的 Documents 文件夾下找一個(gè)文件,而且我知道它的名字里有 “project” 這個(gè)詞:
$ find Documents -name "*project*" Documents/work/project-abc Documents/work/project-abc/project-notes.txt
除了文件它還顯示目錄。你可以限制僅搜索查詢(xún)文件:
$ find Documents -name "*project*" -type f Documents/work/project-abc/project-notes.txt
最后再一次,find 還有很多供你使用的選項(xiàng),要是你想使用它們,man 手冊(cè)頁(yè)絕對(duì)可以幫到你:
$ man find via: https://fedoramagazine.org/commandline-quick-tips-locate-file/
總結(jié)
以上所述是小編給大家介紹的Linux命令行快速技巧之定位一個(gè)文件的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
在 Ubuntu Linux 上安裝 Oracle Java 14的方法
最近,Oracle 宣布 Java 14(或 Oracle JDK 14)公開(kāi)可用。如果你想進(jìn)行最新的實(shí)驗(yàn)或者開(kāi)發(fā)的話,那么你可以試試在 Linux 系統(tǒng)上安裝 Java 14,感興趣的朋友可以參考下本文2020-04-04阿里云服務(wù)器ping不通解決辦法(云服務(wù)器搭建完環(huán)境訪問(wèn)不了ip解決辦法)
這篇文章主要介紹了阿里云服務(wù)器ping不通解決辦法(云服務(wù)器搭建完環(huán)境訪問(wèn)不了ip解決辦法),文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2007-05-05淺談Linux下修改/設(shè)置環(huán)境變量JAVA_HOME的方法
這篇文章主要介紹了淺談Linux下修改/設(shè)置環(huán)境變量JAVA_HOME的方法,環(huán)境變量一般是指在操作系統(tǒng)中用來(lái)指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù)。環(huán)境變量是在操作系統(tǒng)中一個(gè)具有特定名字的對(duì)象,它包含了一個(gè)或者多個(gè)應(yīng)用程序所將使用到的信息。感興趣的可以了解一下2020-07-07阿里云Centos6.X發(fā)郵件遇到的各種問(wèn)題
這兩天用PHPMailer寫(xiě)了個(gè)發(fā)送郵件功能,在本地測(cè)試可以發(fā)送郵件,但是放到阿里云服務(wù)器缺發(fā)送不了,經(jīng)過(guò)查詢(xún),最終解決了,把方法分享給大家2018-09-09Linux常用查看硬件設(shè)備信息命令大全(值得收藏)
本文是小編收藏整理的關(guān)于linux查看硬件設(shè)備信息的命名,非常不錯(cuò),值得收藏,需要的朋友參考下吧2016-12-12apache2.2和php5.2.17在windows下整合過(guò)程的錯(cuò)誤解決方法
照理來(lái)說(shuō)apache和php的整合應(yīng)該是非常簡(jiǎn)單的,apache下載windows安裝版本后一路next即可完成安裝,php下載解壓版本后直接解壓到指定目錄,然后在apache的配置文件httpd.conf的最后加入如下幾行即可2011-08-08Apache Rewrite實(shí)現(xiàn)URL的301跳轉(zhuǎn)和域名跳轉(zhuǎn)
Rewirte主要的功能就是實(shí)現(xiàn)URL的跳轉(zhuǎn),它的正則表達(dá)式是基于Perl語(yǔ)言??苫诜?wù)器級(jí)的(httpd.conf)和目錄級(jí)的 (.htaccess)兩種方式2012-05-05linux如何擴(kuò)展磁盤(pán)容量(VMware虛擬機(jī))
這篇文章主要介紹了linux如何擴(kuò)展磁盤(pán)容量(VMware虛擬機(jī))問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09