Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell -exec选项对';查找';做_Shell_Unix_Makefile - Fatal编程技术网

Shell -exec选项对';查找';做

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 <

我不熟悉Makefile。我正在浏览一个现有的makefile,无法理解它的功能。该行如下所示

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
。我编辑了答案以便澄清。