如何进入所有子目录和文件上执行命令里面? [重复](How to enter all subdi

2019-09-28 12:59发布

这个问题已经在这里有一个答案:

  • 如何去每个目录和执行命令? 10个回答
  • 重定向标准输出与发现-exec,并不会产生新的外壳 3个回答

我会说我是一个牛逼,当谈到来砸开始。

我想创建一个脚本,将进入所有目录和子目录(和子子-..-子目录)以及这些目录里的文件执行的命令。

我需要运行该命令只是在文件开头添加一些文字,并在同一目录中的原始文件名末尾将其保存在“.COM”(另一个)文件。

到目前为止,我已经能够创建一个脚本,正是这一点,但不会去深度超过一个子目录(它不会进入目录的目录)

for f in /scratch/aurelien/test/*;
do
[ -d $f ] && cd "$f" &&
for file in ./* ; do printf "TEXT TO ADD TO BEGINNING OF FILE" > ${file}.com && 
tail -n +3 <"$file" >> "${file}.com" ; done &&
done;

兜兜一段时间后,我决定使用查找要做到这一点尝试:

 find /scratch/aurelien/test/ -type f -execdir printf "TEXTTOADDTOBEGINNINGOFFILE" > {}.com &&
 tail -n +3 <"${}" >> "${}.com" \;

但我不知道我已经深知在find命令中{},并使用execdir聆听我得到一个错误信息的卷:

发现:当前目录包含在PATH环境变量,这与发现的-execdir动作组合不安全。 请从您的$ PATH删除当前目录(即去掉“”或者前导或尾随冒号)

任何帮助将不胜感激 !

文章来源: How to enter all subdirectories and execute command on files inside? [duplicate]