Shell-Script
這部分在帶有 -exec {} 的 find 命令中是什麼意思?
我有這個命令(KSH)
find <path> -regextype posix-extended -type f -regex '.*/txt' -exec ls -l --full-time \{\} \; | sort -bnr
所以,到目前為止,我正在閱讀和破譯上面的命令,我所知道的是
-regextype posix-extended
這只是將 regextype 更改為 posix-extended
-type f
這只返回文件
-regex '.*/txt'
這只是正則表達式
-exec ls -l --full-time
執行
ls -l --full-time
\\{\\}
這個我不明白。它有什麼作用?我所知道的是我需要結束
-exec
,{} \;
但為什麼花括號內有反斜杠?
我所知道的是我需要結束
-exec
,{} \;
但為什麼花括號內有反斜杠?反斜杠刪除了以下字元的特殊含義,如下所示:
$ echo $SHELL /bin/bash $ echo \$SHELL $SHELL
這也是他們在這裡所做的,除了在類似 sh 的 shell
{}
中並不特別,因此不需要它們。至少在fish shell中需要它們,其中平原{}
被移除,或者如果你有一些看起來像 Bash/ksh/zsh 中的大括號擴展的東西,但不想擴展它。(例如echo \{foo,bar\}
vsecho {foo,bar}
)