我在 Windows 机器上。但是,我安装了 Cygwin 并更新了环境变量路径,这样我就可以通过 Windows 终端运行 Linux 命令。
我想要执行以下命令:
wc -l * > total
在许多文件夹中。我的设置如下:
父文件夹有 24 个子文件夹,每个子文件夹分别命名为 PKA1、PKA2 等,最多为 PKA24
我想进入每个子文件夹。但在每个子文件夹中,我需要进一步深入。我需要再向下三层(此时每个目录中只有一个子文件夹),但路径如下所示:
PKA1/timestep_size/v_0.001/500eV
然后在这个深度的每个子文件夹中,有 4 个文件夹:
O1
O3
Si3
Si5
我想进入每个目录并执行我的命令。有没有快速的方法可以做到这一点?
答案1
如果你知道有多少个嵌套文件夹,你可以尝试
wc -l * > file
wc -l */* >> file
wc -l */*/* >> file
ETC。
答案2
使用 FOR 循环。
从父文件夹中执行以下操作:
FOR /R %G IN (*) DO wc -l %G >>total
这应该对该目录中的每个文件执行命令。
/R 开关使其遍历每个文件并>>附加,而不是覆盖文件的输出。
更多信息:
http://ss64.com/nt/for_r.html http://ss64.com/nt/syntax-redirection.html