使用查找将所有.jpg文件递归添加到其自己的html元素中

时间:2018-08-05 00:44:27

标签: linux

我很好奇是否可以在给定目录中递归地找到所有*.jpg文件类型,然后将其在自己的<img src="">标签内输出到新的 .html 文档,同时仍使用Linux保留其原始文件名。

我的意思是:

    find . -name "*.jpg" to >> new file

列为

    <img src="image1".jpg>
    <img src="image2".jpg>
    <img src="image3".jpg>
    // ...and so on

目前,我已经尝试了这两个命令,但是看不到缺少的内容。

    for %i in (*.jpg) do echo ^<img src="%i" /^> >> newfile.html

    find . -name ‘.jpg’ -exec mv ‘*.jpg’ ‘^<img src=“*.jpg”>^’ \;

1 个答案:

答案 0 :(得分:0)

以下命令可以完成这项工作。

find . -name "*.jpg" -exec echo '<img src="{}">' \; > index.html

它与您的find . -name ‘.jpg’ -exec mv ‘*.jpg’ ‘^<img src=“*.jpg”>^’ \;类似,但

  1. -name '.jpg'只会找到名称为.jpg的文件,而不是全部后缀为.jpg的文件
  2. -exec mv将尝试移动文件而不回显该语句

此命令有几个问题。 for %i in (*.jpg) do echo ^<img src="%i" /^> >> newfile.html

  1. 第一个for块语法不正确。这是正确的答案。for i in *.jpg; do command;done
  2. 第二个在shell脚本中,我们使用$ i代替%i来使用变量。
  3. 最后一个<和>用于bash中的重定向,因此您应引用自己的echo参数。
  4. 最后您将拥有 for i in *.jpg;do echo "<img src=\"$i\">";done
  5. 仍然该命令不会仅在您当前目录上递归地找到jpeg文件