如何从通过awk传递的ls命令中删除目录权限?

韦德

在我的ZSH自定义配置中,我具有以下功能:

cll() { ls -AlhG "$@" | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(" %0o ",k);print}'; }

它输出:

➜  test cll
total 32
644 -rw-r--r--    1 work  admin     0B Oct  7 18:55 .hidden
644 -rw-r--r--    1 work  admin   480B Aug 22  2016 gulpfile.js
644 -rw-r--r--    1 work  admin   149B Jan  7  2017 index.php
755 drwxr-xr-x  247 work  admin   8.2K Aug 22  2016 node_modules
644 -rw-r--r--    1 work  admin   1.0K Aug 22  2016 test.less
644 -rw-r--r--    1 work  admin   664B Aug 22  2016 test.min.css
755 -rwxr-xr-x    1 work  admin     0B Oct  7 18:54 try

它还支持颜色,因此我的可执行文件等具有漂亮的颜色:)

我想从中删除权限细分列(例如:)-rw-r--r--所以我希望它看起来像这样:

644    1 work  admin     0B Oct  7 18:55 .hidden
644    1 work  admin   480B Aug 22  2016 gulpfile.js
644    1 work  admin   149B Jan  7  2017 index.php
755  247 work  admin   8.2K Aug 22  2016 node_modules
644    1 work  admin   1.0K Aug 22  2016 test.less
644    1 work  admin   664B Aug 22  2016 test.min.css
755    1 work  admin     0B Oct  7 18:54 try

我试图弄乱它,但是我所做的一切都会破坏它。我愿意采用一种完全不同的方法(而不是通过管道传递awk)。


最终解决方案:

感谢@Skaperen引起cut我的注意。我对函数进行了双管道处理,效果很好!现在是输出:

➜  test cll
total
 644  work  admin     0B Oct  7 18:55 .hidden
 644  work  admin   480B Aug 22  2016 gulpfile.js
 644  work  admin   149B Jan  7  2017 index.php
 755  work  admin   8.2K Aug 22  2016 node_modules
 644  work  admin   1.0K Aug 22  2016 test.less
 644  work  admin   664B Aug 22  2016 test.min.css
 755  work  admin     0B Oct  7 18:54 try

这是我的功能aliases.zsh(自定义配置):

cll() { ls -AlhG "$@" | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(" %0o ",k);print}' | cut -c 1-5,21-; }

唯一能使它完美的是,如果我可以添加一个自定义列来分析它是否是“目录”,“文件”,“符号链接”等。

创造者

通过命令传递它cut -c 1-3,14-如果需要调整数字,请调整数字。man cut更多细节。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得在PowerShell中删除目录的权限?

来自分类Dev

在find命令目录搜索中如何忽略传递的目录?

来自分类Dev

特定字符后,如何从ls命令的输出中删除空格?

来自分类Dev

如何在Linux中删除目录的写权限?

来自分类Dev

删除目录中的数千个文件后,ls命令非常慢

来自分类Dev

删除目录中的数千个文件后,ls命令非常慢

来自分类Dev

如何通过linux / unix命令从目录中的所有30个文件中删除“ <MAXROWS />”字符串?

来自分类Dev

“如何使用ls命令显示目录'/ sbin'中以'az'开头的所有文件/目录?”

来自分类Dev

如何在awk脚本中传递命令行参数

来自分类Dev

rsync命令可通过删除来备份主目录和某些目录中的文件

来自分类Dev

在awk命令中删除引号

来自分类Dev

如何从命令行删除MacOS中的目录?

来自分类Dev

如何通过SUDOERS限制在特定目录中运行命令?

来自分类Dev

将ls的颜色通过管道传递到awk的“打印”语句

来自分类Dev

目录权限如何影响目录中的文件?

来自分类Dev

使用 rm 和 ls 时无法通过 SSH 删除目录

来自分类Dev

如何在Mac OSX中使用zsh / ls命令在终端中首先列出目录?

来自分类Dev

如何将星号传递到bash脚本中的ls命令中

来自分类Dev

如何在命令行中从目录B中的目录A中删除匹配的文件?

来自分类Dev

如何在Powershell中通过管道传递旧命令的输出?

来自分类Dev

Bash命令获取目录中每个文件的目录文件权限

来自分类Dev

如何通过命令行和 sys.argv 将整个目录传递给 python

来自分类Dev

cd && ls | grep:如何在当前shell中执行命令并传递输出

来自分类Dev

目录中的“ w”权限位是否允许您删除目录?

来自分类Dev

目录中的“ w”权限位是否允许您删除目录?

来自分类Dev

通过命令提示符仅从目录中删除文件和子文件夹

来自分类Dev

如何跳过awk中的目录?

来自分类Dev

如何从命令行删除目录中的所有空目录?

来自分类Dev

如何通过xargs将ls传递到cat中,以便列出文件名?

Related 相关文章

  1. 1

    如何获得在PowerShell中删除目录的权限?

  2. 2

    在find命令目录搜索中如何忽略传递的目录?

  3. 3

    特定字符后,如何从ls命令的输出中删除空格?

  4. 4

    如何在Linux中删除目录的写权限?

  5. 5

    删除目录中的数千个文件后,ls命令非常慢

  6. 6

    删除目录中的数千个文件后,ls命令非常慢

  7. 7

    如何通过linux / unix命令从目录中的所有30个文件中删除“ <MAXROWS />”字符串?

  8. 8

    “如何使用ls命令显示目录'/ sbin'中以'az'开头的所有文件/目录?”

  9. 9

    如何在awk脚本中传递命令行参数

  10. 10

    rsync命令可通过删除来备份主目录和某些目录中的文件

  11. 11

    在awk命令中删除引号

  12. 12

    如何从命令行删除MacOS中的目录?

  13. 13

    如何通过SUDOERS限制在特定目录中运行命令?

  14. 14

    将ls的颜色通过管道传递到awk的“打印”语句

  15. 15

    目录权限如何影响目录中的文件?

  16. 16

    使用 rm 和 ls 时无法通过 SSH 删除目录

  17. 17

    如何在Mac OSX中使用zsh / ls命令在终端中首先列出目录?

  18. 18

    如何将星号传递到bash脚本中的ls命令中

  19. 19

    如何在命令行中从目录B中的目录A中删除匹配的文件?

  20. 20

    如何在Powershell中通过管道传递旧命令的输出?

  21. 21

    Bash命令获取目录中每个文件的目录文件权限

  22. 22

    如何通过命令行和 sys.argv 将整个目录传递给 python

  23. 23

    cd && ls | grep:如何在当前shell中执行命令并传递输出

  24. 24

    目录中的“ w”权限位是否允许您删除目录?

  25. 25

    目录中的“ w”权限位是否允许您删除目录?

  26. 26

    通过命令提示符仅从目录中删除文件和子文件夹

  27. 27

    如何跳过awk中的目录?

  28. 28

    如何从命令行删除目录中的所有空目录?

  29. 29

    如何通过xargs将ls传递到cat中,以便列出文件名?

热门标签

归档