Bash
Bash:遍歷所有子目錄並對某些文件執行命令
我的文件夾結構如下所示
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
…但這不起作用。
在 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 "$@"' _ {} +
一旦您對結果感到滿意,請移除迴聲。