溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux命令行快速技巧之定位一個(gè)文件的方法

發(fā)布時(shí)間:2020-10-05 02:25:22 來(lái)源:腳本之家 閱讀:201 作者:Adam Šamalík 欄目:服務(wù)器

我們都會(huì)有文件存儲(chǔ)在電腦里 —— 目錄、相片、源代碼等等。它們是如此之多。也無(wú)疑超出了我的記憶范圍。要是毫無(wú)目標(biāo),找到正確的那一個(gè)可能會(huì)很費(fèi)時(shí)間。在這篇文章里我們來(lái)看一下如何在命令行里找到需要的文件,特別是快速找到你想要的那一個(gè)。

好消息是 Linux 命令行專門設(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

除了文件它還顯示目錄。你可以限制僅搜索查詢文件:

$ 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)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI