以前我不知道有 everything 和 listary 这样的本地文件检索神器,一直自建文件索引。
自建方法就是,把我电脑资料夹中所有文件的路径及名称统统放在一个filelist.txt的文件里。
比如以下目录:
会生成一个filelist.txt的文件:
./你不知道的js:
[图灵程序设计丛书].你不知道的JavaScript(上卷).pdf
[图灵程序设计丛书].你不知道的JavaScript(下卷).pdf
[图灵程序设计丛书].你不知道的JavaScript(中卷).pdf
./图灵数学-统计学丛书:
图灵数学·统计学丛书26-陶哲轩实分析-[澳]陶哲轩-王昆扬(译)-人民邮电出版社-2008.pdf
图灵数学·统计学丛书27-不等式(第2版)-[英]G·H·哈代-越民义(译)-人民邮电出版社-2008.pdf
图灵数学·统计学丛书28-运筹学导论:高级篇(第8版)-[美]H·A·塔哈-人民邮电出版社-2008.pdf
图灵数学·统计学丛书29-拉克斯《线性代数及其应用(第2版)》 习题解答.pdf
图灵数学·统计学丛书29-线性代数及其应用(第2版)【英文版暂代】-[美]彼得·D·拉克斯-Wiley出版-2007.pdf
图灵数学·统计学丛书30-损失模型:从数据到决策(第2版)【英文版暂代】-[美]斯图尔特·A·克卢格曼-Wiley出版-2004.pdf
图灵数学·统计学丛书31-实验设计与分析(第6版)-[美]道格拉斯·C·蒙哥马利-人民邮电出版社-2008.pdf
图灵数学·统计学丛书33-金融时间序列分析(中文版.第2版)-[美]蔡瑞胸(Ruey.S.Tsay)-人民邮电出版社-2009.pdf
图灵数学·统计学丛书34-线性代数应该这样学(第2版)-[美]S·阿克斯勒-人民邮电出版社-2009.pdf
图灵数学·统计学丛书35-纯数学教程(纪念版)-[英]G·H·哈代-人民邮电出版社-2009.pdf
图灵数学·统计学丛书36-复分析:可视化方法-[美]T·尼达姆-齐民友(译)-人民邮电出版社-2009.pdf
图灵数学·统计学丛书37-计算统计-[美]Geof H.Givens-人民邮电出版社-2009.pdf
[图灵数学·统计学丛书].数学分析八讲.修订版.revise2.pdf
[图灵数学·统计学丛书].普林斯顿微积分读本.修订版.revise30.epub
[图灵数学·统计学丛书].普林斯顿微积分读本.修订版.revise30.pdf
然后,就可以通过该文本查找文件了。
这个方法很笨,但也有适用场景。
好处是不需要额外软件(各大操作系统自带功能),坏处就是你得先打到这个文件在哪,哈哈。
接下就介绍一下各操作系统如何生成文件列表。
Win 7 cmd dos dir命令
win7 下默认的命令行工具是cmd.exe,可以通过dir命令获得文件列表。
dir命令是directory的缩写,功能是显示一个磁盘上全部或部分文件目录(文件或文件夹),所显示的文件信息包括文件名、扩展名、文件长度、文件建立或最后一次修改的日期和时间等,不显示文件的具体内容。
语法
dir [<盘符>][<路径>][<文件名>][<扩展名>][/p][/w][/s][/a[:]属性][/o[:]排序方式]
其中:
dir /b
列出每个目录名或文件名,每行一个(包含文件扩展名),但是不显示标题信息或摘要
dir /s
是列出指定目录和其下属各级子目录中的所有文件。
所以要玩成以上操作有三步:
- 去到所在目录 cd d:/book/图灵600
- 列出文件及子目录文件名 dir /b/s
- 输出重定向到文件 dir /b/s > filelist.txt
输出重定向
重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示:
command1 > file1
上面这个命令执行command1然后将输出的内容存入file1。
注意任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用»操作符。
Linux ls
从Win 7 升级到Win 10之后,默认的命令行工具是powershell。命令 dir /b/s 就不行了。
好在Win 10 内置了linux子系统,于是就使用linux ls命令。
ls命令概述
ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似。当执行ls命令时,默认显示的只有非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示。当不加参数时,默认列出当前目录的列表信息。ls命令使用频率非常高,参数也非常多,多达四五十个,本文只介绍一部分常用的参数,其他参数可以通过man命令查看帮助手册。
说明:在linux下,文件名以点.开头表示该文件为隐藏文件,如.bashrc。
ls命令语法
ls [选项] [目录或文件名]
参数:
- -a:–all的缩写,显示所有的文件,包括隐藏文件(以.开头的文件)
-d
:--directory
的缩写,仅列出目录本身,而不是列出目录里的内容列表。-f
:直接列出结果,而不进行排序(ls默认会以文件名排序)- -R # 递归列出遇到的子目录。
-l
:列出长数据串,显示出文件的属性与权限等数据信息(常用)- … …
所以 ls -R可以完成操作:
Win 10 Powershell
当然,powershell 无疑也是可以罗列文件。查看了文档,主要有两种方式:
1 Get-ChildItem
Powershell 可以使用 Get-ChildItem 获取文件夹中的所有项目。
- -Force 参数以显示隐藏或系统项目
- -Recurse 参数可以显示子文件夹内容
- -Name 参数仅返回指定路径中的文件或目录名称
所以完整命令是: Get-ChildItem -Name -Recurse > filelist.txt
2 Get-ChildItem 简写版
Get-ChildItem 有一个简写形式是 dir,它与 dos 的dir相似,参数却不一样,这也是困扰我的原因。
-name 对应 -n, -Recurse 对应 -r 。
所以简写形式为:
dir -n -r > filelist.txt
参考资料
- dir | Microsoft Docs
- dir (命令) - 维基百科,自由的百科全书
- linux命令详解之ls命令_蝈蝈的博客-CSDN博客_linux ls命令详解
- Working with Files and Folders - PowerShell | Microsoft Docs
- Get-ChildItem (Microsoft.PowerShell.Management) - PowerShell | Microsoft Docs
- windows - Please explain, simply, dir /b > dirlist.txt with powershell - Super User
- windows - Please explain, simply, dir /b > dirlist.txt with powershell - Super User