Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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
Windows Shell说find:缺少“-exec';别无选择_Windows_Shell_Find_Rm - Fatal编程技术网

Windows Shell说find:缺少“-exec';别无选择

Windows Shell说find:缺少“-exec';别无选择,windows,shell,find,rm,Windows,Shell,Find,Rm,我最近使用的一个备份程序在我的计算机上复制了一大堆文件,因为我后来更改了一些设置 当备份程序复制时,它将原来的文件重命名为original1.thefilename.extension。我试图用一个简单的shell命令自动删除所有这些不必要的文件 find -type f -name 'original1*' -exec rm {} \; 然而,当我尝试运行这个时,我得到了 find: missing argument to `-exec' 我在网上到处寻找解决办法。我发现有人建议我应该试

我最近使用的一个备份程序在我的计算机上复制了一大堆文件,因为我后来更改了一些设置

当备份程序复制时,它将原来的文件重命名为
original1.thefilename.extension
。我试图用一个简单的shell命令自动删除所有这些不必要的文件

 find -type f -name 'original1*' -exec rm {} \;
然而,当我尝试运行这个时,我得到了

find: missing argument to `-exec'
我在网上到处寻找解决办法。我发现有人建议我应该试试
exec-rm+
-exec-rm{}+
-exec-rm{}
-exec rm+
等,但它们都不起作用。我正在使用Windows8.1


我真的很感激任何帮助

在Windows命令shell中,不需要转义分号

find -type f -name 'original1*' -exec rm {} ;
您的命令版本应该在bashshell(如cygwin)中工作


有趣的是,您可以执行gnu
find
,因为在我的Windows 8.1机器上,我可以使用Microsoft的
find

我必须询问。。。您使用的是windows命令shell吗?还是Cygwin?运行Unix虚拟机?或者您是否连接到其他地方的Unix服务器?我被“我在使用Windows 8.1”的说法弄糊涂了。如果您使用的是Windows 8.1,您使用的是哪个版本的
find
?西格温?明格?其他版本?在问题上加上环境名称是明智的。你用的是哪个外壳?如果使用
{}
{}
“{}”
而不仅仅是
{}
,会发生什么情况?我使用的是Cmder,使用的是
cmd
window@JonathanLeffler
find--version
返回
GNU find version 4.1
,但您使用的是cmd.exe shell和窗口吗?或者您正在使用其他看起来有点像cmd.exe窗口的终端并在其中运行shell?我没有遇到“Cmder”,但这可能只是意味着我没有注意Windows(这是准确的)。也就是说,谷歌搜索“cmder”很容易找到它。不过,我不清楚它支持哪种shell语言。我怀疑
{}
是shell的某种元字符,需要转义。例如,在某些情况下,Bash将
{0..9}
解释为值0到9。也许类似的事情正在发生。