linux中find: missing argument to `-exec'
时间: 2024-11-12 21:35:46 浏览: 12
在Linux终端中,`find`命令用于搜索指定目录及其子目录,并执行指定的动作(如打印、删除、移动文件等)。当你看到`find: missing argument to '-exec'`这样的错误提示时,这意味着你在尝试使用`-exec`选项时忘记提供了必要的参数。
`-exec`选项通常需要跟一个动作命令和可能的管道符号(`;` 或 `&&`)以及可以传递给该命令的一个或多个参数。基本语法如下:
```bash
find [path] [expression] -exec [command] [arguments] ;
```
例如,如果你想查找所有的`.txt`文件并使用`ls`命令列出它们:
```bash
find /home/user -type f -name "*.txt" -exec ls -lh {} \;
```
在这里,`-type f`表示查找普通文件,`-name "*.txt"`指定了文件名模式,`ls -lh {}`是你想要执行的命令,`{}`会被替换为找到的每个匹配项,`\;`用于结束`-exec`选项。
如果你没有提供这个完整的结构,就会收到`missing argument to '-exec'`的错误。请检查一下你的`find`命令行,确保`-exec`后面跟着合适的命令和参数。如果还有疑问,请提供具体的`find`命令,我可以帮你分析。
相关问题
find: missing argument to `-exec'
This error message occurs when the `find` command is used with the `-exec` flag, but no command is provided to execute. To fix the error, you need to provide a command to execute along with the `-exec` flag. For example:
```
find . -type f -name "*.txt" -exec cat {} \;
```
In this example, the `cat` command is executed on each file that matches the criteria specified by `find`. The `{}` placeholder is replaced by the filename of each file found by `find`. The `\;` at the end of the command tells `find` that the command for each file is complete.
find . -type d -mmin +60 -exec rm -r {} find: missing argument to `-exec'
抱歉,我之前的回答有误。在使用 `find` 命令时,确实需要在 `-exec` 参数后提供一个分号 (`;`) 用于标记命令的结束。以下是正确的命令示例:
```bash
find /path/to/directory -type d -mmin +60 -exec rm -r {} \;
```
这个命令将在指定目录下查找上次修改时间大于1小时的文件夹,并使用 `-exec rm -r {} \;` 来删除它们。
请注意,`-exec` 参数后的 `\;` 是用于指示命令结束的标记,必须使用反斜杠进行转义,以防止被 shell 解释。
再次向你道歉并感谢你的指正。如果还有其他问题,请随时提问。
阅读全文