我有一个名为的目录,data
其中包含多个具有不同权限的文件。其中一些文件根本没有权限,例如----------
。
我想根据文件的权限删除它们。我只需要删除该文件夹中没有权限的文件,其他的就不用删除了。有没有一个命令行可以帮助我做到这一点?
我试过了chmod -R 777 data
,但这只会重写该曲目的所有权限。
答案1
在您的data
目录中,您可以找到这些文件的列表并轻松删除它们。
这将返回与文件的“无访问”权限方案匹配的文件列表:
find . -type f -perm 000
(翻译成可以理解的术语,“find”命令会在当前目录中搜索执行搜索的用户无权访问的.
文件( ))type -f
附加-exec rm {} \;
到末尾可能会删除文件。但是,请确保您从第一个未exec
附加参数的命令中找到的文件未列出您需要保留的文件(例如 git 存储库跟踪数据)。
find . -type f -perm 000 -exec rm -f {} \;
...但要小心使用这样的递归删除因为你可以删除你的东西需要并且这不会在删除每个文件之前提示您 - 它只会执行此操作。
请注意,如果您的用户不是文件的所有者,您将无法删除这些文件,因此,只有当您的用户实际上是这些文件的所有者时,这才会起作用。