GNU/Linux >> Linux Esercitazione >  >> Linux

Statistiche ricorsive sui tipi di file nella directory?

Ho fatto uno scraping del sito Web per un progetto di conversione. Vorrei fare alcune statistiche sui tipi di file in esso contenuti, ad esempio 400 .html file, 100 .gif , ecc. Qual è un modo semplice per farlo? Deve essere ricorsivo.

Modifica: Con lo script pubblicato da maxschelpzig, sto riscontrando alcuni problemi dovuti all'architettura del sito che ho raschiato. Alcuni dei file hanno il nome *.php?blah=blah&foo=bar con vari argomenti, quindi li conta tutti come unici. Quindi la soluzione deve considerare *.php* essere tutti dello stesso tipo, per così dire.

Risposta accettata:

Potresti usare find e uniq per questo, es.:

$ find . -type f | sed 's/.*.//' | sort | uniq -c
   16 avi
   29 jpg
  136 mp3
    3 mp4

Spiegazione del comando

  • find stampa ricorsivamente tutti i nomi di file
  • sed cancella da ogni nome di file il prefisso fino all'estensione del file
  • uniq presuppone un input ordinato
    • -c fa il conteggio (come un istogramma).

Linux
  1. Perché Rm può rimuovere i file di sola lettura?

  2. Rinominare i file nella directory?

  3. comando linux per svuotare tutti i file di una directory

  4. Gatto ricorsivo tutti i file in un singolo file

  5. rsync N file più recenti in una directory

Copiare file in Linux

Come copiare file e directory in Linux

Copia tipi di file specifici mantenendo la struttura delle directory in Linux

Come eseguire il tar di tipi di file specifici (estensioni) in una directory

Gestisci le autorizzazioni di directory e file con chmod Recursive

Come eliminare tutti i file in una directory tranne alcuni?