Bash find:以相反顺序执行

ker*_*000 1 bash recursion find

我正在像这样迭代文件:

find $directory -type f -exec codesign {} \; 
Run Code Online (Sandbox Code Playgroud)

现在的问题是较高层次结构上的文件首先被签名。有没有办法迭代目录树并首先处理最深的文件?

以便

/My/path/to/app/bin
Run Code Online (Sandbox Code Playgroud)

之前已处理过

/My/path/mainbin
Run Code Online (Sandbox Code Playgroud)

jhn*_*hnc 6

是的,只需使用-depth

-深度

初级应始终评估为真;它将导致目录层次结构下降,以便目录中的所有条目都在目录本身之前执行。如果未指定深度主值,则目录中的所有条目都应在目录本身之后进行操作。如果指定了任何 深度主值,则即使通常不会评估该深度主值,它也应应用于整个表达式。

例如:

$ mkdir -p top/a/b/c/d/e/f/g/h
$ find top -print
top
top/a
top/a/b
top/a/b/c
top/a/b/c/d
top/a/b/c/d/e
top/a/b/c/d/e/f
top/a/b/c/d/e/f/g
top/a/b/c/d/e/f/g/h
$ find top -depth -print
top/a/b/c/d/e/f/g/h
top/a/b/c/d/e/f/g
top/a/b/c/d/e/f
top/a/b/c/d/e
top/a/b/c/d
top/a/b/c
top/a/b
top/a
top
Run Code Online (Sandbox Code Playgroud)

请注意,在特定级别,排序仍然是任意的。