Удалите все файлы, упомянутые в .gitignore

​​Рассмотрите возможность перенаправления самого цикла:

#!/bin/sh
for jj in seq 100; do
    cat INPUT.file
done >> OUTPUT.file
2
06.04.2018, 14:59
3 ответа

В вашем случае, если записи файлов в вашем .gitignoreне начинаются с !, тогда этот вкладыш -вам подойдет:

while read -r entry;do rm -rf ${entry}; done <.gitignore
0
27.01.2020, 21:55
git clean -X -f -n

git clean -Xудалит все файлы, соответствующие шаблонам в .gitignore. -nв конце приводит к тому, что он фактически не удаляет файлы, а только пробный запуск, сообщая о файлах, которые были бы удалены.

Добавьте -d, чтобы также удалить игнорируемые каталоги.

Без -Xудаляет неотслеживаемые файлы (, но не игнорируемые файлы ).

См. git clean --help.

4
27.01.2020, 21:55
git clean -Xdf

С заглавными буквами -X,git cleanтолько удаляет файлы, соответствующие .gitignore.

С -dgit cleanтакже удаляет целые каталоги, соответствующие .gitignore.

С помощью -fgit cleanфактически удалит данные, а не предупредит вас. Будьте осторожны. Могут быть другие вещи (, такие как личная direnvконфигурация ), которые .gitignoredпо другим причинам, поэтому убедитесь, что вы всегда понимаете, что будет делать эта команда, прежде чем она будет запущена.

Особая благодарность @Kusalananda за то, что поделился git clean.


В качестве альтернативы, если у вас есть, скажем, папка для зависимостей, которая включает каталоги с символическими ссылками, и вы не хотите git cleanрекурсивно удалять все внутри этих каталогов, вы можете использовать эту более длинную форму:

git ls-files --others --ignored --exclude-standard --directory | head -c -1 | tr '\n' '\0' | xargs -0 -r rm -r

git ls-filesс этими опциями выводит те же каталоги, что и git clean -Xdn, но больше машиночитаемых -.

head -c -1обрезает завершающий байт новой строки.

tr '\n' '\0'переводит все новые строки в NULs.

xargs -0 -r rm -rудаляет файлы и каталоги. -0делает NULразделителем. -rзаставляет пропускать пустой ввод (предупреждение :это не -переносимое расширение GNU ).

5
27.01.2020, 21:55

Теги

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