Bash

如何執行“find -exec <script> {};

  • March 28, 2013

我有一個腳本可以更改文件夾文件的屬性。

這是範例樹:

dir 1
   --file 1
   --file 2
   --file 3
dir 2
   --file 1
   --file 2
dir 3
   --file 1
   --file 2
   --file 3

我在終端上執行這個命令,我想為每個目錄執行 shell 腳本(script.sh)

find . -type d -exec ./script.sh {}\;

它不會執行並且會出錯:

find: missing argument to `-exec'

我在這裡想念什麼?

您缺少 and 之間的{}空格;

find . -type d -exec ./script.sh {} \;

嘗試

find . -type d -exec /path/to/script.sh '{}' \;

或者

find . -type d -exec /path/to/script.sh \{\} \;

或(我相信它也會起作用,因為“}”在這種情況下顯然不是特別的,因此是字面的):

find . -type d -exec /path/to/script.sh \{} \;

引用自:https://unix.stackexchange.com/questions/70455