Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
bash脚本rm无法删除由php mkdir创建的文件夹_Bash_Ssh_Rm - Fatal编程技术网

bash脚本rm无法删除由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

我无法删除由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 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