当前位置: 首页 > 科技观察

命令行快速提示:如何定位文件

时间:2023-03-13 19:59:18 科技观察

我们的计算机上都存储有文件——目录、照片、源代码等。它们太多了。当然超出了我的记忆。在没有目标的情况下找到合适的人可能会很耗时。在这篇文章中,我们就来看看如何在命令行中找到你需要的文件,尤其是快速找到你想要的文件。好消息是Linux命令行有很多非常有用的命令行工具,专门用于查找计算机上的文件。让我们看看其中的三个:ls、tree和find。ls如果你知道文件在哪里,你只需要列出它们或查看有关它们的信息,ls就是为此而生的。只需运行ls即可列出当前目录中所有可见的文件和目录:$lsDocumentsMusicPicturesVideosnotes.txt添加-l选项以查看有关文件的信息。添加-h选项以人类可读格式查看文件大小:$ls-lhtotal60Kdrwxr-xr-x2adamadam4.0KNov213:07Documentsdrwxr-xr-x2adamadam4.0KNov213:07Musicdrwxr-xr-x2adamadam4.0KNov213:13图片drwxr-xr-x2adamadam4.0KNov213:07Videos-rw-r--r--1adam43KNov213:12notes.txtls还可以搜索指定位置:$lsPictures/trees.pngwallpaper.png或指定文件-即使仅后跟部分名称:$ls*.txtnotes.txt缺少某些内容?想查看隐藏文件?没问题,使用-a选项:$ls-a。.bash_logout.bashrcDocumentsPicturesnotes.txt...bash_profile.vimrcMusicVideosls还有许多其他有用的选项,您可以组合它们以获得您想要的效果。您可以使用以下命令了解更多信息:$manlstree如果您想查看文件的树结构,tree是一个不错的选择。它可能没有默认安装在您的系统上,您可以使用包管理DNF手动安装:$sudodnfinstalltr??ee如果您在没有任何选项或参数的情况下运行tree,它将从当前目录开始并显示所有目录和A文件的树视图。提醒一下,此输出可能非常大,因为它包括此目录中的所有目录和文件:$tree.|--Documents||--笔记.txt||--秘密||`--圣诞礼物.txt|`--工作||--项目-abc|||--自述文件.md|||--do-things.sh||`--project-notes.txt|`--状态报告。txt|--音乐|--图片||--树木.png|`--wallpaper.png|--Videos`--notes.txt如果太多无法列出,使用-L选项,在后面添加你想查看的层数,可以限制列出文件的层数:$tree-L2.|--文件||--笔记.txt||--秘密|`--作品|--音乐|--图片||--树木.png|`--wallpaper.png|--Videos`--notes.txt您还可以显示指定目录的树视图:$treeDocuments/work/Documents/work/|--project-abc||--自述文件.md||--do-things.sh|`--project-notes.txt`--status-reports.txt如果用tree,列表就是一个大树图,可以和less结合:$tree|less同样,tree有许多其他可用选项,您可以将它们组合起来发挥更强大的作用。手册页有所有这些选项:$mantreefind那么如果您不知道文件在哪里怎么办?让我们找到他们!如果您的系统中没有find,您可以使用DNF来安装它:$sudodnfinstallfindutils如果您在没有任何选项或参数的情况下运行find,它将递归地列出当前目录中的所有文件和目录。$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真正强大的地方在于您可以使用按文件名搜索:$find-namedo-things.sh./Documents/work/project-abc/do-things.sh或只是名称的一部分-如文件后缀。让我们找到所有的.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您还可以按大小查找文件。如果空间不足,此方法可能特别有用。现在列出所有大于1MB的文件:$find-size+1M./Pictures/trees.png./Pictures/wallpaper.png您当然也可以搜索特定目录。假设我想在我的Documents文件夹中找到一个文件,并且我知道它的名称中有单词“project”:$findDocuments-name"*project*"Documents/work/project-abcDocuments/work/project-abc/project-notes.txt除了文件,它还显示目录。您可以将搜索限制为仅查询文件:$findDocuments-name"*project*"-typefDocuments/work/project-abc/project-notes.txt***同样,find有更多选项供您使用如果你想使用它们,手册页绝对可以帮助你:$manfind