Please enable Javascript to view the contents

最实用的电脑技巧之一:列出文件夹和子文件夹中的文件

 ·  ☕ 5 分钟

以前我不知道有 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   是列出指定目录和其下属各级子目录中的所有文件。

所以要玩成以上操作有三步:

  1. 去到所在目录 cd d:/book/图灵600
  2. 列出文件及子目录文件名 dir /b/s
  3. 输出重定向到文件  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

参考资料

分享

码中人
作者
码中人
Web Developer