我的文件夹结构如下所示
Main
├── Sub1
| ├── Subsub1
| | | ├── file1.tex
| | | ├── file2.tex
| ├── Subsub2
| | | ├── file1.tex
| | | ├── file2.tex
├── Sub2
| ├── Subsub1
| | | ├── file1.tex
| | | ├── file2.tex
| ├── Subsub2
| | | ├── file1.tex
| | | ├── file2.tex
我想循环到所有子子目录并对pdflatex
每个文件执行命令。
我的尝试
for d in */*/ ; do
pdflatex "$d*.tex"
done
...但这行不通。
答案1
在 bash 中,您使用globstar
shell 选项。
#!/usr/bin/env bash
shopt -s globstar
for d in Main/**/*.tex; do
echo pdflatex "$d"
done
或者使用查找。
find Main/ -type f -name '*.tex' -exec sh -c 'echo pdflatex "$@"' _ {} +
一旦您对结果感到满意,请删除回声。