Shell脚本中忽略指定目录的find命令语句含义解析
解析Shell脚本中排除指定目录的查找代码
你要解析的这段代码是用来在当前目录下查找所有普通文件,同时排除.git目录,最后把排序后的结果写入临时文件,具体拆解如下:
find . -path ./.git -prune -o -type f -print | sort > ${temporaryfile1}
逐部分解释每个参数的作用:
find .:从当前工作目录(.)开始,递归遍历所有文件和目录-path ./.git:匹配路径恰好是当前目录下的.git目录的条目-prune:一旦-path匹配成功(找到.git目录),就停止对这个目录的递归遍历——简单说就是直接跳过.git目录里的所有内容,不进行查找-o:逻辑“或”,表示如果前面的条件(匹配.git并执行-prune)不成立,就执行后面的操作-type f:只筛选普通文件,排除目录、符号链接、设备文件等其他类型的条目-print:把符合前面条件的文件路径输出到标准输出| sort:将find输出的结果通过管道传递给sort命令,对路径按字典序排序> ${temporaryfile1}:把排序后的最终结果重定向写入到变量temporaryfile1指向的临时文件中
整体逻辑总结:遍历当前目录下的所有内容,遇到.git目录直接跳过;剩下的内容里只挑普通文件,把这些文件路径排序后存到指定的临时文件里。
内容的提问来源于stack exchange,提问作者spaghettinoodles
相关产品推荐
相关产品推荐

