linux find命令输出遍历

时间:2012-11-08 06:30:30

标签: linux command find traversal output

我需要创建一个shell脚本,只需在特定源(例如/ var / www / html / folder1 / source /)下查找文件(例如* .jpg),并且必须对输出的输出进行一些操作。查找命令。以下是我在脚本中编写的命令

outputvar = find /var/www/html/folder1/source/ -name \*.jpg

如何对存储find命令输出的变量进行遍历操作?

2 个答案:

答案 0 :(得分:4)

您可能希望将find命令的输出放在文件中,例如

find /var/www/html/folder1/source/ -name \*.jpg > /tmp/find.out

您也可以将该输出放在shell变量中,例如

outfindvar=$(find /var/www/html/folder1/source/ -name \*.jpg)

然后你可以迭代它们

for jpgfile in $outfindvar; do 
   ## do something with $jpgfile
done

如果您的名字中包含空格的文件,请小心。在这种情况下,请考虑使用-print0的{​​{1}}操作;或者可以使用辅助脚本进行find操作。

你真的应该阅读Advanced Bash Scripting Guide

您可能想要使用

启动脚本
-exec

在调试时,并在脚本运行良好后删除#!/bin/bash -vx

答案 1 :(得分:2)

piping输出到你想用它做的其他事情怎么样?

find /var/www/html/folder1/source/ -name \*.jpg | other_command