Linux 如果文件由特定用户拥有,则删除该文件
有一个文件有时不属于root用户 我想让我在linux中的perl脚本基本上检查一个文件是否归root所有,如果是删除它 当前我拥有的Linux 如果文件由特定用户拥有,则删除该文件,linux,perl,Linux,Perl,有一个文件有时不属于root用户 我想让我在linux中的perl脚本基本上检查一个文件是否归root所有,如果是删除它 当前我拥有的取消链接($File\u Path/File\u Name”) 但这只是删除文件,我希望它先检查它是否由root所有,然后删除,否则忽略 您能指导我如何实现这一点吗?我没有主意了。的文档显示,返回列表中的第五个元素是“文件所有者的数字用户ID”。*nix上的超级用户帐户的uid必须为0,因此 if ( (stat $fqn)[4] == 0 ) { unl
取消链接($File\u Path/File\u Name”)代码>
但这只是删除文件,我希望它先检查它是否由root所有,然后删除,否则忽略
您能指导我如何实现这一点吗?我没有主意了。的文档显示,返回列表中的第五个元素是“文件所有者的数字用户ID”。*nix上的超级用户帐户的uid必须为0
,因此
if ( (stat $fqn)[4] == 0 ) {
unlink $fqn or die "Error with unlink($fqn): $!";
}
的文档显示,返回列表中的第五个元素是“文件所有者的数字用户ID”。*nix上的超级用户帐户的uid必须为0
,因此
if ( (stat $fqn)[4] == 0 ) {
unlink $fqn or die "Error with unlink($fqn): $!";
}
如果您要对某个文件夹中的一组文件执行此操作,您最好只执行以下操作之一:
find /folder/somewhere/ -type f -user root -exec rm {} \;
find /folder/somewhere/ -type f -user root -exec rm -i {} \; #interactive y/n each file
find /folder/somewhere/ -type f -user root -print0 | xargs -r0 rm
您可能还需要在find
前面使用sudo
。不过要小心,这是一种会造成很大伤害的命令…如果您对某个文件夹中的一组文件执行此操作,您最好只执行以下命令之一:
find /folder/somewhere/ -type f -user root -exec rm {} \;
find /folder/somewhere/ -type f -user root -exec rm -i {} \; #interactive y/n each file
find /folder/somewhere/ -type f -user root -print0 | xargs -r0 rm
您可能还需要在find
前面使用sudo
。不过要小心,这是一种会造成很大伤害的命令…stat-c%u
?获取所有者的UID?如果它是0
,则它归root所有。stat-c%u
?获取所有者的UID?如果它是0
,则它归root所有如果包含code>,则可以为stat元素使用更可读的符号名,而不是数字数组索引,例如,(stat$fqn)->uid
代替(stat$fqn)[4]
如果包含code>,则可以为stat元素使用更可读的符号名,而不是数字数组索引,例如,(stat$fqn)->uid
代替(stat$fqn)[4]
。