В Railscast Райана Бейтса о git его файл .gitignore содержит следующую строку:
tmp / ** / *
Какова цель использования двойных звездочек, за которыми следует звездочка как таковая: ** / *
?
Можно было бы использовать просто tmp / *
вместо tmp / ** / *
не достигли такого же результата?
Погугли по проблеме, я нашел непонятную статью IBM об этом, и мне было интересно, может ли кто-нибудь прояснить проблему.
Он говорит, что нужно войти во все подкаталоги ниже tmp, а также только в содержимое tmp.
например. У меня есть следующее:
$ find tmp
tmp
tmp/a
tmp/a/b
tmp/a/b/file1
tmp/b
tmp/b/c
tmp/b/c/file2
согласованный вывод:
$ echo tmp/*
tmp/a tmp/b
согласованный вывод:
$ echo tmp/**/*
tmp/a tmp/a/b tmp/a/b/file1 tmp/b tmp/b/c tmp/b/c/file2
Это функция zsh по умолчанию, чтобы заставить его работать в bash 4, вы выполняете:
shopt -s globstar
Из http://blog.privateergroup.com/2010/03/gitignore-file-for-android-development/ :
(kwoods)
"The double asterisk (**) is not a git thing per say, it’s really a linux / Mac shell thing.
It would match on everything including any sub folders that had been created.
You can see the effect in the shell like so:
# ls ./tmp/* = should show you the contents of ./tmp (files and folders)
# ls ./tmp/** = same as above, but it would also go into each sub-folder and show the contents there as well."