GNU/Linux >> Znalost Linux >  >> Linux

Najděte celkovou velikost nepotvrzených nebo nesledovaných souborů v git

Upravil jsem odpověď edmondscommerce přidáním jednoduchého příkazu awk, který sečte výstup cyklu for a vypíše součet (pro převod na Mb dělený 1024*1024)

for f in `git status --porcelain | sed 's#^...##'`; do du -cs $f | head -n 1; done | sort -nr  | awk ' {tot = tot+$1; print } END{ printf("%.2fMb\n",tot/(1024*1024)) }' 

Všimněte si, že --porcelain tiskne názvy cest vzhledem ke kořenu git repozitářů. Takže, pokud to uděláte v podadresáři, příkaz du nebude schopen najít soubory..

(whoppa; moje první odpověď v SoF, nechť je s ní síla)


Použil jsem upravenou verzi tohoto, protože jsem měl soubory s mezerami, které způsobily pád. Také jsem si nebyl jistý výpočtem velikosti a odstranil jsem zbytečný head :

git status --porcelain | sed 's/^...//;s/^"//;s/"$//' | while read path; do
    du -bs "$path" ;
done | sort -n | awk ' {tot = tot+$1; print } END { printf("%.2fMB\n",tot/(1024*1024)) }'

Dávám přednost použití while protože je o něco bezpečnější než for :stále může dělat ošklivé věci se soubory, které mají v sobě nové řádky, takže bych si přál, aby existovalo předání null -oddělené soubory, přesto stále mohou grepovat stav, ale nenašel jsem pro to dobrý způsob.


Myslím, že jsem odpověděl na svou vlastní otázku:

for f in `git status --porcelain | sed 's#^...##'`; do du -cs $f | head -n 1; done | sort -nr;  echo "TOTAL:"; du -cs .

Jsem však otevřený jakýmkoli lepším nápadům nebo užitečným trikům. Můj aktuální výstup je 13GB :)

Výše uvedený příkaz je v podstatě tam, dává mi celkový řádek po řádku ze stavu git, ale nedává mi celkový součet. Momentálně dostávám na konci součet všech souborů, což není správné. Zkusil jsem nějaké použití bc ale nepodařilo se mi to zprovoznit


Linux
  1. Příkazy hledání pro Linux

  2. Jak najít všechny soubory větší než 1 GB v Linuxu?

  3. Vypsat celkovou velikost využití disku podle adresářů / složek v systému Linux

  1. Krátký příkaz k nalezení celkové velikosti souborů odpovídajících zástupnému znaku

  2. Jak spočítat celkový počet řádků nalezených souborů?

  3. Celkové využití disku pro konkrétního uživatele

  1. Jak hledat soubory podle velikosti a přípony?

  2. Najít největší soubory rekurzivně?

  3. Najděte a zkopírujte soubory