问题描述
如何获取文件夹中所有文件的列表,包括所有子文件夹中的所有文件并将输出放入文件中?
最佳办法
您可以在命令行上执行此操作,使用 -R 开关(递归),然后将输出通过管道传输到文件中:
ls -R > filename1
这将在当前目录中创建一个名为 filename1 的文件,其中包含当前目录及其下所有子目录的完整目录列表。
您可以通过指定完整路径来列出当前目录以外的目录,例如:
ls -R /var > filename2
将列出 /var 中和下的所有内容,并将结果放在当前目录中名为 filename2 的文件中。只要您对目录具有读取权限,这适用于其他用户(包括 root)拥有的目录。
您还可以使用 sudo 命令列出您无权访问的目录,例如 /root。例如:
sudo ls -R /root > filename3
将列出 /root 中的所有内容,并将结果放在当前目录中名为 filename3 的文件中。由于大多数 Ubuntu 系统在此目录中没有任何内容,因此 filename3 将不包含任何内容,但如果包含,它将起作用。
次佳办法
只需使用带有目录名称的 find
命令即可。例如,要查看主目录中文件夹中的文件和所有文件,请使用
find ~
检查 find
命令的查找手册手册页
还可以在终端中使用 info find
命令检查查找 GNU 信息页面。
第三种办法
tree
递归 ls
的替代方案是命令行工具 tree
,它带有很多选项来自定义显示输出的格式。有关所有选项,请参见 manpage for tree。
第四种办法
还:
gvfs-tree /path/to/folder/
将为您提供与使用其他字符的行相同的树。
tree -a
也显示隐藏文件
tree -i
不显示行