私のフォルダ構造は次のとおりです
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
シェルオプションを使用します。
#!/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 "$@"' _ {} +
結果に満足したらエコーを削除します。