Shell -exec选项对';查找';做
我不熟悉Makefile。我正在浏览一个现有的makefile,无法理解它的功能。该行如下所示Shell -exec选项对';查找';做,shell,unix,makefile,Shell,Unix,Makefile,我不熟悉Makefile。我正在浏览一个现有的makefile,无法理解它的功能。该行如下所示 find $(RELEASE_DIR) -depth -name "*CVS" -exec rm -rf {} \; find命令用于查找字符串。但我不明白这句话到底是干什么的。请帮助理解。这意味着它将扫描$(RELEASE\u DIR),对于每个名为*CVS的文件,我们执行rm-rf,这意味着删除它 =>此命令删除名称末尾包含CVS的所有文件。查找命令用于搜索给定目录中的文件 find <
find $(RELEASE_DIR) -depth -name "*CVS" -exec rm -rf {} \;
find命令用于查找字符串。但我不明白这句话到底是干什么的。请帮助理解。这意味着它将扫描
$(RELEASE\u DIR)
,对于每个名为*CVS的文件,我们执行rm-rf,这意味着删除它
=>此命令删除名称末尾包含
CVS
的所有文件。查找命令用于搜索给定目录中的文件
find <directory> -option1 -option2
find-option1-option2
选项-name“*CVS”
表示该命令将搜索名称末尾带有CV的文件
-depth
表示使用该方法遍历目录
-exec rm-rf{}
告诉find对找到的每个文件执行命令rm-rf
{}
是当前找到的文件的占位符,\
标记rm命令的结束。man-find
和man-rm
?man-find
这将删除项目发布目录中名为“*CVS”的所有文件。{e,a}-匹配由逗号分隔的一组模式中的任何一个。但这里我们没有给出任何模式。它必须单独找到*CVS为什么我们需要{}在这里。{}是文件名的一个占位符。如果{}不在那里,find将执行rm-rf
,而不是rm-rf fooCVS
。我编辑了答案以便澄清。