如何列出文件夹的所有属性

温斯顿

如何列出目录中文件夹的属性。就像,我想“找到./ -type d”,同时“找到”它们。

沃尔克·西格尔

您可以find直接使用它来打印要查看的任何详细信息:

对于类似于ll-的ls -dils信息,您可以使用以下-ls选项显示信息

find . -type d -ls

例如:

$ find /boot -type d -ls
3407873    4 drwxr-xr-x   3 root     root         4096 May  8 09:58 /boot
3407874    4 drwxr-xr-x   5 root     root         4096 Jul 31 03:32 /boot/grub
3408122    4 drwxr-xr-x   2 root     root         4096 Nov 27  2012 /boot/grub/fonts
3407884   12 drwxr-xr-x   2 root     root        12288 Apr 18 05:57 /boot/grub/i386-pc
3408117    4 drwxr-xr-x   2 root     root         4096 Apr 18 05:57 /boot/grub/locale

如果要显示更多详细信息:该选项-printf采用格式字符串,该字符串允许您显示目录的所有属性。

例如,要显示索引节点编号和纯文件名:

find . -type d -printf '%i %f\n'

格式字符串在man find

    -printf format
           True;  print  format on the standard output, interpreting `\' escapes and `%' directives.  Field widths
           and precisions can be specified as with the `printf' C function.  Please note that many of  the  fields
           are  printed  as  %s rather than %d, and this may mean that flags don't work as you might expect.  This
           also means that the `-' flag does work (it forces fields to be left-aligned).  Unlike  -print,  -printf
           does not add a newline at the end of the string.  The escapes and directives are:

[... literal chars ...]

           A  `\'  character followed by any other character is treated as an ordinary character, so they both are
           printed.

           %%     A literal percent sign.

           %a     File's last access time in the format returned by the C `ctime' function.

           %Ak    File's last access time in the format specified by k, which is either `@' or a directive for the
                  C  `strftime'  function.   The possible values for k are listed below; some of them might not be
                  available on all systems, due to differences in `strftime' between systems.

[... many more time formats ...]

           %b     The amount of disk space used for this file in 512-byte blocks. Since disk space is allocated in
                  multiples  of  the filesystem block size this is usually greater than %s/512, but it can also be
                  smaller if the file is a sparse file.

           %c     File's last status change time in the format returned by the C `ctime' function.

           %Ck    File's last status change time in the format specified by k, which is the same as for %A.

           %d     File's depth in the directory tree; 0 means the file is a command line argument.

           %D     The device number on which the file exists (the st_dev field of struct stat), in decimal.

           %f     File's name with any leading directories removed (only the last element).

           %F     Type of the filesystem the file is on; this value can be used for -fstype.

           %g     File's group name, or numeric group ID if the group has no name.

           %G     File's numeric group ID.

           %h     Leading directories of file's name (all but the last element).  If the  file  name  contains  no
                  slashes (since it is in the current directory) the %h specifier expands to ".".

           %H     Command line argument under which file was found.

           %i     File's inode number (in decimal).

           %k     The  amount of disk space used for this file in 1K blocks. Since disk space is allocated in mul‐
                  tiples of the filesystem block size this is usually greater than %s/1024, but  it  can  also  be
                  smaller if the file is a sparse file.

           %l     Object of symbolic link (empty string if file is not a symbolic link).

           %m     File's  permission  bits (in octal).  This option uses the `traditional' numbers which most Unix
                  implementations use, but if your particular implementation uses an  unusual  ordering  of  octal
                  permissions  bits, you will see a difference between the actual value of the file's mode and the
                  output of %m.   Normally you will want to have a leading zero on this number, and  to  do  this,
                  you should use the # flag (as in, for example, `%#m').

           %M     File's  permissions  (in  symbolic  form,  as for ls).  This directive is supported in findutils
                  4.2.5 and later.

           %n     Number of hard links to file.

           %p     File's name.

           %P     File's name with the name of the command line argument under which it was found removed.

           %s     File's size in bytes.

           %S     File's sparseness.  This is calculated as (BLOCKSIZE*st_blocks / st_size).  The exact value  you
                  will get for an ordinary file of a certain length is system-dependent.  However, normally sparse
                  files will have values less than 1.0, and files which use indirect blocks may have a value which
                  is  greater  than  1.0.    The  value used for BLOCKSIZE is system-dependent, but is usually 512
                  bytes.   If the file size is zero, the value printed is undefined.  On systems which  lack  sup‐
                  port for st_blocks, a file's sparseness is assumed to be 1.0.

           %t     File's last modification time in the format returned by the C `ctime' function.

           %Tk    File's last modification time in the format specified by k, which is the same as for %A.

           %u     File's user name, or numeric user ID if the user has no name.

           %U     File's numeric user ID.

           %y     File's type (like in ls -l), U=unknown type (shouldn't happen)

           %Y     File's type (like %y), plus follow symlinks: L=loop, N=nonexistent

           A `%' character followed by any other character is discarded, but the other character is printed (don't
           rely on this, as further format characters may be introduced).  A `%' at the end of the format argument
           causes  undefined  behaviour  since there is no following character.  In some locales, it may hide your
           door keys, while in others it may remove the final page from the novel you are reading.

           The %m and %d directives support the # , 0 and + flags, but the other directives do not, even  if  they
           print  numbers.   Numeric  directives that do not support these flags include G, U, b, D, k and n.  The
           `-' format flag is supported and changes the alignment of a field from right-justified  (which  is  the
           default) to left-justified.

           See  the  UNUSUAL  FILENAMES section for information about how unusual characters in filenames are han‐
           dled.


如果您需要find命令的其他变体,则可以做很多事情find-手册页很长。

例如,如果您想省略隐藏目录-名称以开头的目录.,而只显示第一级目录,则可以使用以下命令:

find . -maxdepth 1 -type d -name '[^.]*' -printf '%i %p\n'

$ find /boot -maxdepth 1 -type d -name '[^.]*' -printf '%i %p\n' 
3407873 /boot
3407874 /boot/grub

(看看命令中的两个新部分-两者都是经常有用的。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

列出文件夹和文件

AWS S3-列出文件夹中没有前缀的所有对象

如何列出tomcat文件夹中的所有文件?

列出文件夹中的所有文件以及子文件夹

命令列出文件夹中的所有文件以及Windows中的子文件夹

Git-列出文件文件夹的所有作者?

列出文件夹中的所有文件ID(无子文件夹)

如何从Postgres内部列出文件夹中的文件?

在Yosemite上使用JavaScript for Automation列出文件夹中的所有文件

如何列出文件夹中的文件

如何使用angular js列出文件夹中的所有文件名

以cmd列出所有文件夹和子文件夹,但不列出文件

在python的zip文件中列出文件夹中的所有文件

如何列出文件夹中的所有文件然后选择多个文件

列出文件大小给定结构中的所有文件夹和子文件夹

快速递归列出文件夹中的所有文件

此代码如何列出文件夹中的所有项目?

如何在bash中列出文件夹而没有尾随/

如何使用bash命令列出文件夹?

如何使用批处理文件以编号顺序列出文件夹中特定扩展名的所有文件

如何列出文件夹中的文件名

R不会列出文件夹中的所有文件

如何列出文件夹中所有.zip文件的内容以及特定文件的grep?

列出文件夹中的所有文件,并在每个文件名之间添加句子

Shell脚本列出文件夹中的所有目录并为每个目录运行命令

使用 Outlook MAPI 列出文件夹中的所有电子邮件

如何列出文件夹中以“.dat”结尾的所有文件以及最近的更改(日期时间)

如何列出文件夹并扫描它们

是否有一种算法可以列出文件夹中的所有文件(对于 C#)?