要在Bash中查找不属于权限的文件/文件夹,并执行多个命令,可以使用以下解决方法:
find /path/to/directory -not -user username -or -not -group groupname -exec sh -c '
if [ -d "$0" ]; then
echo "$0 is a directory."
# 在这里添加要执行的命令,比如删除目录
# rm -rf "$0"
else
echo "$0 is a file."
# 在这里添加要执行的命令,比如删除文件
# rm "$0"
fi
' {} \;
请将/path/to/directory
替换为要查找的目录的路径。将username
和groupname
分别替换为文件/文件夹所属的用户名和组名。
上述命令使用find
命令来查找不属于指定用户名和组名的文件/文件夹。使用-not -user username
来查找不属于指定用户名的文件/文件夹,使用-or -not -group groupname
来查找不属于指定组名的文件/文件夹。
然后,通过-exec
参数和sh -c
来执行多个命令。在sh -c
后面的单引号内,可以根据文件/文件夹的类型执行不同的命令。在示例中,如果是目录,则输出“{目录路径} is a directory.”,并可以在注释的位置添加要执行的命令,比如删除目录。如果是文件,则输出“{文件路径} is a file.”,并可以在注释的位置添加要执行的命令,比如删除文件。
请注意,在执行命令之前,请确保您了解操作的风险,并谨慎操作。
下一篇:Bash查找和替换