2015-07-06 40 views
1

我想删除使用CQ5卷曲用这个命令只删除子页面

curl -X DELETE http://%HOSTAUTHOR%:%PORTAUTHOR%/content/a/b/c/d/e/f/g/ \ 
    -u %USER%:%PASSWORD% 

我只想/content/a/b/c/d/e/f/g/下页独生子女页面被删除,而不是“G”页面。但父页面也被删除。

尝试:

curl -X DELETE %HOSTAUTHOR%:%PORTAUTHOR%/content/a/b/c/d/e/f/g/* \ 
    -u %USER%:%PASSWORD% 

不会删除任何东西,并试图...

curl -X DELETE %HOSTAUTHOR%:%PORTAUTHOR%/content/a/b/c/d/e/f/g \ 
    -u %USER%:%PASSWORD% 

删除 'G' 页为好。

任何人都可以帮助我编写正确的语法,以便只有/content/a/b/c/d/e/f/g/下的页面被删除,而不是整个'g'页面?

回答

1

按照the Sling documentation,你可以用:applyTo参数做到这一点:

如果:applyTo值的最后一段是“*”,则操作 适用于解决父资源的所有孩子。这可以用 来处理资源的所有子项,而不必 指定每个子资源的路径。

...

指定项目(S)以与:applyTo参数被移除时,请求资源被原封不动(当然,除非如果在:applyTo参数中列出),并只用来处理任何相对参数:applyTo中的路径。

的语法是:如果一个资源无法删除

curl -u [user]:[password] \ 
    -F":operation=delete" \ 
    -F":applyTo=/content/a/b/c/d/e/f/g/*" \  
     http://[host]:[port] 

注意,它也提到,整个操作将失败。

+0

我试过了;它也会删除父页面的jcr:content节点。我们可以用父页的jcr:content节点不会被删除的方式编写它吗? – cquser

+0

据我所知,不,它似乎不支持正则表达式或通配符,不幸的是。使用多个“applyTo”字段,例如对每个直系后代来说都是一种方法(如果cURL是必须的),例如, curl -F“:operation = delete”-F“:applyTo =/content/a/b/c/d/e/f/g/primary”-F“:applyTo =/content/a/b/c/d/e/f/g/secondary“http:// localhost:8080 -u admin:admin' – anotherdave

+0

在本用例中,curl是必须的;并使用多个applyTo不是一个选项;因为有数百页。不管怎么说,多谢拉。 – cquser