Linux 如果文件由特定用户拥有,则删除该文件

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

有一个文件有时不属于root用户

我想让我在linux中的perl脚本基本上检查一个文件是否归root所有,如果是删除它

当前我拥有的
取消链接($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所有,则可以为stat元素使用更可读的符号名,而不是数字数组索引,例如,
(stat$fqn)->uid
代替
(stat$fqn)[4]
,则可以为stat元素使用更可读的符号名,而不是数字数组索引,例如,
(stat$fqn)->uid
代替
(stat$fqn)[4]