PRF:20181105 Commandline quick tips- How to locate a file.md

@dianbanjiu
This commit is contained in:
Xingyu.Wang 2018-11-20 22:58:24 +08:00
parent f57dedbcfd
commit 4395905f21

View File

@ -1,24 +1,24 @@
命令行快捷提示:如何定位一个文件 命令行快速技巧:如何定位一个文件
====== ======
![](https://fedoramagazine.org/wp-content/uploads/2018/10/commandlinequicktips-816x345.jpg) ![](https://fedoramagazine.org/wp-content/uploads/2018/10/commandlinequicktips-816x345.jpg)
我们都会有文件存储在电脑里 —— 目录,相片,源代码等等。它们是如此之多。也无疑超出了我的记忆范围。要是毫无目标,找到正确的那一个可能会很费时间。在这篇文章里我们来看一下如何在命令行里找到需要的文件,特别是快速找到你想要的那一个。 我们都会有文件存储在电脑里 —— 目录、相片、源代码等等。它们是如此之多。也无疑超出了我的记忆范围。要是毫无目标,找到正确的那一个可能会很费时间。在这篇文章里我们来看一下如何在命令行里找到需要的文件,特别是快速找到你想要的那一个。
好消息是 Linux 命令行专门设计了很多非常有用的命令行工具在你的电脑上查找文件。下面我们看一下它们其中三个ls、tree 和 tree。 好消息是 Linux 命令行专门设计了很多非常有用的命令行工具在你的电脑上查找文件。下面我们看一下它们其中三个:`ls``tree``tree`
### ls ### ls
如果你知道文件在哪里你只需要列出它们或者查看有关它们的信息ls 就是为此而生的。 如果你知道文件在哪里,你只需要列出它们或者查看有关它们的信息,`ls` 就是为此而生的。
只需运行 ls 就可以列出当下目录中所有可见的文件和目录: 只需运行 `ls` 就可以列出当下目录中所有可见的文件和目录:
``` ```
$ ls $ ls
Documents Music Pictures Videos notes.txt Documents Music Pictures Videos notes.txt
``` ```
添加 **-l** 选项可以查看文件的相关信息。同时再加上 **-h** 选项,就可以用一种人们易读的格式查看文件的大小: 添加 `-l` 选项可以查看文件的相关信息。同时再加上 `-h` 选项,就可以用一种人们易读的格式查看文件的大小:
``` ```
$ ls -lh $ ls -lh
@ -30,7 +30,7 @@ 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 -rw-r--r-- 1 adam adam 43K Nov 2 13:12 notes.txt
``` ```
**ls** 也可以搜索一个指定位置: `ls` 也可以搜索一个指定位置:
``` ```
$ ls Pictures/ $ ls Pictures/
@ -44,7 +44,7 @@ $ ls *.txt
notes.txt notes.txt
``` ```
少了点什么?想要查看一个隐藏文件?没问题,使用 **-a** 选项: 少了点什么?想要查看一个隐藏文件?没问题,使用 `-a` 选项:
``` ```
$ ls -a $ ls -a
@ -52,7 +52,7 @@ $ ls -a
.. .bash_profile .vimrc Music Videos .. .bash_profile .vimrc Music Videos
``` ```
**ls** 还有很多其他有用的选项,你可以把它们组合在一起获得你想要的效果。可以使用以下命令了解更多: `ls` 还有很多其他有用的选项,你可以把它们组合在一起获得你想要的效果。可以使用以下命令了解更多:
``` ```
$ man ls $ man ls
@ -60,13 +60,13 @@ $ man ls
### tree ### tree
如果你想查看你的文件的树状结构tree 是一个不错的选择。可能你的系统上没有默认安装它,你可以使用包管理 DNF 手动安装: 如果你想查看你的文件的树状结构,`tree` 是一个不错的选择。可能你的系统上没有默认安装它,你可以使用包管理 DNF 手动安装:
``` ```
$ sudo dnf install tree $ sudo dnf install tree
``` ```
如果不带任何选项或者参数地运行 tree将会以当前目录开始显示出包含其下所有目录和文件的一个树状图。提醒一下这个输出可能会非常大因为它包含了这个目录下的所有目录和文件 如果不带任何选项或者参数地运行 `tree`,将会以当前目录开始,显示出包含其下所有目录和文件的一个树状图。提醒一下,这个输出可能会非常大,因为它包含了这个目录下的所有目录和文件:
``` ```
$ tree $ tree
@ -89,7 +89,7 @@ $ tree
`-- notes.txt `-- notes.txt
``` ```
如果列出的太多了,使用 -L 选项,并在其后加上你想查看的层级数,可以限制列出文件的层级: 如果列出的太多了,使用 `-L` 选项,并在其后加上你想查看的层级数,可以限制列出文件的层级:
``` ```
$ tree -L 2 $ tree -L 2
@ -118,13 +118,13 @@ Documents/work/
`-- status-reports.txt `-- status-reports.txt
``` ```
如果使用 tree 列出的是一个很大的树状图,你可以把它跟 less 组合使用: 如果使用 `tree` 列出的是一个很大的树状图,你可以把它跟 `less` 组合使用:
``` ```
$ tree | less $ tree | less
``` ```
再一次tree 有很多其他的选项可以使用你可以把他们组合在一起发挥更强大的作用。man 手册页有所有这些选项: 再一次,`tree` 有很多其他的选项可以使用你可以把他们组合在一起发挥更强大的作用。man 手册页有所有这些选项:
``` ```
$ man tree $ man tree
@ -134,13 +134,13 @@ $ man tree
那么如果不知道文件在哪里呢?就让我们来找到它们吧! 那么如果不知道文件在哪里呢?就让我们来找到它们吧!
要是你的系统中没有 find你可以使用 DNF 安装它: 要是你的系统中没有 `find`,你可以使用 DNF 安装它:
``` ```
$ sudo dnf install findutils $ sudo dnf install findutils
``` ```
运行 find 时如果没有添加任何选项或者参数,它将会递归列出当前目录下的所有文件和目录。 运行 `find` 时如果没有添加任何选项或者参数,它将会递归列出当前目录下的所有文件和目录。
``` ```
$ find $ find
@ -167,7 +167,7 @@ $ find
./Music ./Music
``` ```
但是 find 真正强大的是你可以使用文件名进行搜索: 但是 `find` 真正强大的是你可以使用文件名进行搜索:
``` ```
$ find -name do-things.sh $ find -name do-things.sh
@ -184,6 +184,7 @@ $ find -name "*.txt"
./Documents/work/project-abc/project-notes.txt ./Documents/work/project-abc/project-notes.txt
./notes.txt ./notes.txt
``` ```
你也可以根据大小寻找文件。如果你的空间不足的时候,这种方法也许特别有用。现在来列出所有大于 1 MB 的文件: 你也可以根据大小寻找文件。如果你的空间不足的时候,这种方法也许特别有用。现在来列出所有大于 1 MB 的文件:
``` ```
@ -207,7 +208,7 @@ $ find Documents -name "*project*" -type f
Documents/work/project-abc/project-notes.txt Documents/work/project-abc/project-notes.txt
``` ```
最后再一次find 还有很多供你使用的选项要是你想使用它们man 手册页绝对可以帮到你: 最后再一次,`find` 还有很多供你使用的选项要是你想使用它们man 手册页绝对可以帮到你:
``` ```
$ man find $ man find
@ -220,7 +221,7 @@ via: https://fedoramagazine.org/commandline-quick-tips-locate-file/
作者:[Adam Šamalík][a] 作者:[Adam Šamalík][a]
选题:[lujun9972][b] 选题:[lujun9972][b]
译者:[dianbanjiu](https://github.com/dianbanjiu) 译者:[dianbanjiu](https://github.com/dianbanjiu)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出