如何使用find在指定的子目录中查找文件
How to use find to find a file in specified subdirectory
我有多个网站使用我自己的模板,现在我更新了我的模板,我想使用查找更新模板。
如果我这样做
find . -name template.css -print -exec cp NEW_FILE {} \;
然后所有其他 template.css 将被覆盖。
我只希望 template.css 在目录 mytemplate/css 中时被覆盖。
有人有想法吗?
示例:
/site1/templates/mytemplate/css/template.css*
/site1/templates/othertemplate/css/template.css
/site1/templates/other2template/css/template.css
/site2/templates/mytemplate/css/template.css*
/site2/templates/othertemplate/css/template.css
/site2/templates/other2template/css/template.css
/site3/templates/mytemplate/css/template.css*
/site3/templates/othertemplate/css/template.css
/site3/templates/other2template/css/template.css
带 * 的文件应该只被覆盖
您可以使用 -wholename
标志和正确的正则表达式。这应该适用于您的示例:
find . -wholename "*/mytemplate/css/template.css" -print -exec cp NEW_FILE {} \;
我有多个网站使用我自己的模板,现在我更新了我的模板,我想使用查找更新模板。
如果我这样做
find . -name template.css -print -exec cp NEW_FILE {} \;
然后所有其他 template.css 将被覆盖。
我只希望 template.css 在目录 mytemplate/css 中时被覆盖。
有人有想法吗?
示例:
/site1/templates/mytemplate/css/template.css*
/site1/templates/othertemplate/css/template.css
/site1/templates/other2template/css/template.css
/site2/templates/mytemplate/css/template.css*
/site2/templates/othertemplate/css/template.css
/site2/templates/other2template/css/template.css
/site3/templates/mytemplate/css/template.css*
/site3/templates/othertemplate/css/template.css
/site3/templates/other2template/css/template.css
带 * 的文件应该只被覆盖
您可以使用 -wholename
标志和正确的正则表达式。这应该适用于您的示例:
find . -wholename "*/mytemplate/css/template.css" -print -exec cp NEW_FILE {} \;