【发布时间】:2019-02-11 23:37:35
【问题描述】:
我正在使用以下代码(来自this answer)将当前目录中的所有 CPP 文件转换为名为 code.pdf 的文件,并且效果很好:
find . -name "*.cpp" -print0 | xargs -0 enscript -Ecpp -MLetter -fCourier8 -o - | ps2pdf - code.pdf
我想改进这个脚本:
使其成为一个 .sh 文件,该文件可以接受一个参数来指定 扩展而不是将其硬编码为 CPP;
让它递归运行,访问当前目录的所有子目录;
-
对于遇到的每个子目录,将具有指定扩展名的所有文件转换为名为 $NameOfDirectory$.PDF 并放置在该子目录中的单个 PDF;
李>
【问题讨论】:
-
find将检索以扩展名结尾的所有子目录中的所有文件(在您的示例中为cpp)。如果这是您想要的,那么您的递归子弹没有意义。我想要当前目录中的所有文件,没有理由使用 find。 -
我使用的行是我工作的基础,取自 StackOverflow 上的另一个答案(见链接)。我的要点是我想要添加的改进。
标签: linux bash find xargs enscript