bash 列出 Linux 中组可写的文件和目录

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2373561/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-17 21:44:44  来源:igfitidea点击:

Listing files and directories writable by the group in Linux

linuxbashdebianconsole-application

提问by pako

What's the easiest way to recursively list files in a given directory and its subdirectories, that are writable by the group which owns them? I'm using Debian 5.

在给定目录及其子目录中递归列出文件的最简单方法是什么,这些文件可由拥有它们的组写入?我正在使用 Debian 5。

回答by sorpigal

Something like

就像是

find /dir/ -perm /g=w 

Or, for output like ls -l

或者,对于像 ls -l 这样的输出

find /dir/ -perm /g=w -exec ls -lLd {} +

回答by Segfault

find /dir/ -perm /0020is also a good solution. Check the man page for find. My version in Debian (find (GNU findutils) 4.4.0) has the argument by Sorpigal as deprecated.

find /dir/ -perm /0020也是一个很好的解决方案。检查手册页以查找。我在 Debian 中的版本(find (GNU findutils) 4.4.0)中 Sorpigal 的论点已被弃用。

 -perm mode
          File's  permission  bits  are  exactly mode (octal or symbolic).
          Since an exact match is required, if you want to use  this  form
          for  symbolic  modes,  you  may have to specify a rather complex
          mode string.  For example -perm g=w will only match files  which
          have  mode  0020 (that is, ones for which group write permission
          is the only permission set).  It is more likely  that  you  will
          want  to use the `/' or `-' forms, for example -perm -g=w, which
          matches any file with group write permission.  See the  EXAMPLES
          section for some illustrative examples.

   -perm -mode
          All  of the permission bits mode are set for the file.  Symbolic
          modes are accepted in this form, and this is usually the way  in
          which  would want to use them.  You must specify `u', `g' or `o'
          if you use a symbolic mode.   See the EXAMPLES section for  some
          illustrative examples.

   -perm /mode
          Any  of the permission bits mode are set for the file.  Symbolic
          modes are accepted in this form.  You must specify `u',  `g'  or
          `o'  if  you  use a symbolic mode.  See the EXAMPLES section for
          some illustrative examples.  If no permission bits in  mode  are
          set,  this  test  currently  matches no files.  However, it will
          soon be changed to match any file (the idea is to be  more  con-
          sistent with the behaviour of -perm -000).

   -perm +mode
          Deprecated,  old way of searching for files with any of the per-
          mission bits in mode set.  You should use -perm  /mode  instead.
          Trying to use the `+' syntax with symbolic modes will yield sur-
          prising results.  For example, `+u+x' is a valid  symbolic  mode
          (equivalent to +u,+x, i.e. 0111) and will therefore not be eval-
          uated as -perm +mode but instead as  the  exact  mode  specifier
          -perm  mode  and so it matches files with exact permissions 0111
          instead of files with any execute bit set.  If  you  found  this
          paragraph  confusing,  you're  not alone - just use -perm /mode.
          This form of the -perm test  is  deprecated  because  the  POSIX
          specification  requires  the  interpretation of a leading `+' as
          being part of a symbolic mode, and so we switched to  using  `/'
          instead.