bash脚本rm无法删除由php mkdir创建的文件夹
我无法删除由php mkdir创建的文件夹bash脚本rm无法删除由php mkdir创建的文件夹,bash,ssh,rm,Bash,Ssh,Rm,我无法删除由php mkdir创建的文件夹 for I in `echo $*` do find $I -type f -name "sess_*" -exec rm -f {} \; find $I -type f -name "*.bak" -exec rm -f {} \; find $I -type f -name "Thumbs.db" -exec rm -f {} \; find $I -type f -name "error.log" -exec s
for I in `echo $*`
do
find $I -type f -name "sess_*" -exec rm -f {} \;
find $I -type f -name "*.bak" -exec rm -f {} \;
find $I -type f -name "Thumbs.db" -exec rm -f {} \;
find $I -type f -name "error.log" -exec sh -c 'echo -n > "{}"' -f {} \;
find $I -type f -path "*/cache/*" -name "*.*" -exec rm -f {} \;
find $I -path "*/uploads/*" -exec rm -rdf {} \;
done
我想删除
/uploads/
下的所有文件和文件夹,请帮助我,谢谢…您可能应该在命令中添加-depth
,以删除upload
目录本身之前的子目录
我担心-路径
,但我不熟悉它
也考虑使用<代码> +<代码>代替<代码>;
以减少执行的命令数。我认为这很可能是因为php
在apache或另一个http服务器上运行的用户与调用bash脚本的用户不同。或者,上传/上传的文件可能属于http服务器的用户,而不是调用它的用户
确保在与http服务器相同的用户下运行bash脚本
要了解哪个用户拥有哪个文件,请执行以下操作:
ls -l
如果您以root用户身份运行bash脚本,您应该能够删除它,但不建议这样做
更新
要将其作为nautilus脚本的根运行,请将以下内容用作nautilus脚本:
gksudo runmydeletescript
然后将所有其他代码放入另一个文件中,其路径与为runmydeletescript
放入的路径相同,并在其上运行chmod+x
这是非常危险的强> 你应该考虑改变你的查找命令,使用-O Primar一起加入你的条件,因为最终的Excel基本上是一样的。这将避免重复递归文件系统
其他答案解决了您对php mkdir的担忧。我要补充的是,它与使用PHPMKDIR而不是任何其他代码或命令创建的事实无关。这是由于所有权和权限 我所能提供的只是猜测,除非你说出你观察到的错误。猜测:这可能是由于php以不同于find/rm命令的用户身份运行导致的权限问题。该路径实际上是/uploads
并且存在于文件系统的顶部吗?关于sudo rm-r*/uploads
?请发布您看到的错误消息。如果没有这些,我们只能猜测。我在鹦鹉螺脚本中使用了它们。我没有看到任何错误消息。右键单击tihs文件夹=>/var/www并运行nautilus脚本drwxrwxrwx 3 ali ali 4096 2012-03-27 21:22(..)/uploads/products drwxr-xr-x 2 www data www data 4096 2012-03-27 21:22(..)/uploads/products/11如何作为根naitulus脚本运行?在基于debian的系统(如ubuntu)上,至少您会使用gksudo
。也许您需要制作一个脚本,用gksudo
运行您的脚本:gksudo myotherscript