43 shell recursion directory-listing
我想收到以下输出.
假设文件系统上的目录结构如下:
-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到另一个文件?
小智 84
在Windows中,仅列出目录:
dir /ad /b /s
Run Code Online (Sandbox Code Playgroud)
列出所有文件(没有目录):
dir /a-d /b /s
Run Code Online (Sandbox Code Playgroud)
将输出重定向到文件:
dir /a-d /b /s > filename.txt
Run Code Online (Sandbox Code Playgroud)
mou*_*iel 22
在shell中:
find . -type d
Run Code Online (Sandbox Code Playgroud)
给出当前工作目录中的目录,并且:
find . -type f
Run Code Online (Sandbox Code Playgroud)
从当前工作目录中提供文件.
替换.您感兴趣的目录.
Ken*_*ric 21
目录:
find ./ -type d
Run Code Online (Sandbox Code Playgroud)
文件:
find ./ -type f
Run Code Online (Sandbox Code Playgroud)
目录:
find ./ -type d > somefile.txt
Run Code Online (Sandbox Code Playgroud)
文件:
find ./ -type f > somefile.txt
Run Code Online (Sandbox Code Playgroud)
在Windows上,你可以这样做,因为大多数flexibile解决方案允许你额外处理目录名称.
您使用FOR/R递归执行批处理命令.
看看这个批处理文件.
@echo off
SETLOCAL EnableDelayedExpansion
SET N=0
for /R %%i in (.) do (
SET DIR=%%i
::put anything here, for instance the following code add dir numbers.
SET /A N=!N!+1
echo !N! !DIR!
)
Run Code Online (Sandbox Code Playgroud)
在您的情况下,类似于文件,您可以将模式添加为集合而不是点
(*.*)
Run Code Online (Sandbox Code Playgroud)