Как мне найти репозитории .git и вытащить их все?

Если вы посмотрите на типичный вывод ls -lu,

-rw-r--r--  1 someuser  somegroup  74 Mar 29 05:21 filename

вы заметите, что в общей сложности пять символов пробела предшествуют имени группы. Таким образом, указание поля 6 в команде cut возвращает группу ("staff" в вашем случае).

Кроме того, день доступа будет полем 7, а не 6 в вашей нотации.

Одним из решений может быть использование awk, поскольку он обрабатывает множественные повторения разделителя полей так, как вы ожидали по умолчанию:

accessday=$(ls -lu $file | awk '{print $7}')
1
07.02.2016, 21:24
1 ответ

Заменить ; на + в конце.

Из справочной страницы:

  -execdir command {} + 
Аналогично -exec, но указанная команда запускается из подкаталога, содержащего 
соответствующий файл, который обычно не является каталогом в котором вы начали 
найти. Это гораздо более безопасный метод вызова команд, поскольку он позволяет избежать условий гонки 
во время разрешения путей к совпадающим файлам. Как и в случае действия 
 -exec, форма «+» для -execdir будет строить командную строку для обработки 
более чем одного совпадающего файла, но при любом данном вызове команды будет перечисляться только {{1} }} файлы, которые существуют в том же подкаталоге. Если вы используете эту опцию, вы должны 
убедиться, что ваша переменная среды $ PATH не ссылается на `. '; в противном случае 
злоумышленник может выполнить любые команды, которые ему нравятся, оставив файл с соответствующим именем 
в каталоге, в котором вы запустите -execdir. То же самое относится к имеющим - 
записям в $ PATH, которые пусты или которые не являются абсолютными именами 
каталогов. Если find обнаруживает ошибку, это иногда может вызвать немедленный выход 
, поэтому некоторые ожидающие команды могут вообще не выполняться. 
 
1
29.04.2021, 00:18

Теги

Похожие вопросы