我想收到以下输出 .
假设文件系统上的目录结构如下:
-dir1
-dir2
-file1
-file2
-dir3
-file3
-file4
-dir4
-file5
-dir5
-dir6
-dir7
脚本的输出必须如下:
目录:
/dir1
/dir1/dir2
/dir1/dir2/dir3
/dir1/dir2/dir4
/dir1/dir5
/dir1/dir5/dir6
/dir1/dir5/dir7
文件:
/dir1
/dir1/dir2/file1
/dir1/dir2/file2
/dir1/dir2/dir3/file3
/dir1/dir2/dir3/file4
/dir1/dir2/dir4/file5
/dir1/dir5/dir6
/dir1/dir5/dir7
你能告诉我如何将 find . -type d
和 find . -type f
的输出保存到另一个文件中吗?
7 回答
在Windows中,仅列出目录:
列出所有文件(没有目录):
将输出重定向到文件:
dir command parameters explained on wikipedia
在shell中:
给出当前工作目录中的目录,并且:
从当前工作目录中提供文件 .
用您感兴趣的目录替换
.
.Bash / Linux Shell
目录:
文件:
Bash / Shell进入文件
目录:
文件:
在Windows上,你可以这样做,因为大多数flexibile解决方案允许你额外处理目录名称 .
您使用FOR / R递归执行批处理命令 .
看看这个批处理文件 .
在您的情况下,类似于文件,您可以将模式添加为集合而不是点
In Windows :
dir / ad / b / s
dir / a-d / b / s
在Linux中,一个简单的
将为您提供所有包含项目的列表,其中包含目录和文件 . 您可以将此输出保存到临时文件,然后提取以'd'开头的所有行;那些将是目录 . 以'f'开头的行是文件 .
这是一个老问题,但我想我无论如何都会添加一些东西 .
DIR没有正确遍历您想要的所有目录树,特别是C:上的目录树 . 它因为不同的保护而放弃了 .
ATTRIB工作得更好,因为它发现了更多 . (为什么会出现这种差异?为什么MS会让一个实用工具在这方面工作,另一个工作在这方面有所不同?如果我知道的话会诅咒 . )根据我的经验,处理这个问题最有效的方法,虽然它是一个kludge,但是要获得两个清单:
并获得它们之间的差异 . 这个区别是C:上的目录(除了那些隐藏得太好的目录) . 对于C:,我通常以管理员身份运行 .