find

Toinen erittäin tehokas komento on ”find”. Käytän sitä yleisimmin alikansioissa olevien tiedostojen poistamiseen. Syntaksi on yhden rivin komento

find . -name "patternToSearch" -exec rm -rf {} \;

 

Alle x kt:n tiedostojen poistaminen

Joskus pitää poistaa joukko tiedostoja, jotka ovat alle tietyn koon. Työskentelen esimerkiksi usein suuren sekvensointitiedostokokoelman parissa. Toisinaan osa kirjastoista epäonnistuu, ja ne pitää poistaa.

Varmempaa on kuitenkin tunnistaa ensin epäonnistuneet kirjastot ja poistaa sitten kaikki niihin liittyvät tiedostot. Jotten poistaisi mitään vahingossa, tarkistan ”find”-komennolla ennen poistamista, että olen löytänyt kaikki asiaan liittyvät kirjastot. Tämä on turvaverkko, joka varmistaa, että vain tarkoitetut tiedostot poistetaan.

find . -type f -name "*.gz" -size -1600k | sort | cut -d'_' -f1-4 | uniq -c

Tunnistan ensin poistettavat tiedostot, eli alle 1600 kt:n tiedostot. Sitten lajittelen ne, poimin näytetunnisteen ja muodostan niistä yksilöllisen joukon. Joukosta tehdään yhteenveto, joka kertoo tiedostojen määrän.

Jos työskentelen esimerkiksi paired-end-sekvensoinnin parissa neljällä kaistalla, odotan löytäväni 8 tiedostoa näytettä kohden. Näin varmistan, että kaikki asiaankuuluvat tiedostot on löydetty ja ne voidaan poistaa vaarantamatta muuta dataa.

Kun kaikki tiedostot on löydetty, voin poistaa ne seuraavalla komennolla

find . -type f -name "*.gz" -size -1600k -delete