2017-08-28 83 views
1

我想了解下面的bash脚本代码片段在做什么。 顺序的刘海('!')是让我绊倒的主要因素,在网上搜索似乎没有真正产生任何有用的东西。bash脚本中的顺序BANGs

for file in $(find $pwd/localroot -type f ! -path '*\.git*' ! -path '*README\.md' ! -path "*?scriptname"); do 

回答

1

它表示“不”。从the find(1) man page

! expr 

真要是EXPR是假的。这个角色通常也需要防止shell解释。

在每个测试之间有隐含的

  • 查找文件:-type f
  • .git目录
  • 但不是:! -path '*\.git*'
  • 而忽略README.md! -path '*README\.md'
  • 而忽略?scriptname! -path "*?scriptname",其中?是单个字符。