find
-type d -name ".git" это то, что вы ищете?
вы также можете сделать что-нибудь вроде
find
-type d -name ".git" -print0 | xargs -0 -r dirname для вывода только имен каталогов без части
/. Git
; вы даже можете избежатьdirname
и просто использовать выводfind
плюс/../
в конце каждого имени папки.find
-type d -name ".git" -print0 | xargs -0 -r printf "%s/../" РЕДАКТИРОВАТЬ
Вы можете отменить параметр
-name
и поиграться со значением-maxdepth
; например, я могу легко перечислить все каталоги в моем дереве ядра, имена которых не начинаются сc
(в верхнем или нижнем регистре).find linux-4.8.2/ -type d ! -iname "c*" -maxdepth 1
Я до сих пор не совсем понимаю, что вы имеете в виду:
Я ищу полную противоположность этому, а именно команду, которая находит все файлы не в репозитории Git;
просто потому, что файлы, которые находятся в том же каталоге в той же файловой системе корневого каталога
.git
, могут даже не быть частью репозитория, это просто означает, что буквально есть файлы в том же каталоге ( или подкаталоги), где также есть каталог с именем.git
. Помните, чтоgit
имеет концепцию постановки , и вообще то, что вы видите на диске, может не быть вашим репозиторием git.Взгляните на https://libgit2.github.com/ , который является официальной библиотекой C для git, и для нее есть много привязок, а также множество документов, примеров и способов .
Создать файл журнала очень просто. По умолчанию все журналы в журнале также попадают в системный журнал, и это значение по умолчанию должно быть на месте. rsyslog.conf управляет тем, как обрабатываются записи, передаваемые в syslog. Кроме того, SyslogFacility
по умолчанию имеет значение daemon
, поэтому записи журнала для любой службы обычно заканчиваются в файле daemon.log
в /var/log
.
В вашем сервисном файле добавьте в раздел [service]
SyslogFacility=local2
(число может быть от 0 до 7)https://www.freedesktop.org/software/systemd/man/systemd.exec.html
Измените /etc/rsyslog.conf (найдите существующие строки для изменения )так, чтобы local2 регистрировался в определенном файле (первая строка )и в идеале не регистрировался в системном журнале, добавив local2.none
как показано (он уже есть в журнале ).
local2.* /var/log/your-service-name.log
*.*;auth,authpriv.none,local2.none -/var/log/syslog
[править] вам также нужно изменить весь охват
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none,local2.none -/var/log/messages
Конечно, тогда фактическое удержание должно быть выполнено с помощью logrotate.
ХТХ