給出了一個包含文件的目錄$HOME/foo/
。通過變量傳遞命令'find -exec'不起作用
命令:
find $HOME/foo -type f -exec md5deep -bre {} \;
正常工作和散列文件。
但是,創造-exec
變量似乎並沒有工作:
md5="md5deep -bre"
find $HOME/foo -type f -exec "$md5" {} \;
回報:find: md5deep -bre: No such file or directory
爲什麼呢?
如果要減少命令長度,最好創建一個函數或腳本並將其作爲'-exec'的一部分運行。就像'find $ HOME/foo -type f -exec ./md5.sh {} \;' –
@JonathaDaguerre函數不會與'-exec'一起使用,因爲它是由'find'執行的,函數只有可用在殼裏。 (但一個幫手腳本可以正常工作。) –
好點@GordonDavisson!要從'-exec'運行一個函數,它需要一個新的shell調用。謝謝你糾正我。 –