GNU/Linux >> Znalost Linux >  >> Linux

Zkontrolujte, zda je velikost souboru větší než 1 MB pomocí podmínky IF

Pomocí find na konkrétním souboru na $filepath :

if [ -n "$(find "$filepath" -prune -size +1000000c)" ]; then
    printf '%s is strictly larger than 1 MB\n' "$filepath"
fi

Toto používá find pro dotaz na konkrétní soubor na $filepath pro jeho velikost. Pokud je velikost větší než 1 000 000 bajtů, find vypíše cestu k souboru, jinak nevygeneruje nic. -n test má hodnotu true, pokud má řetězec nenulovou délku, což v tomto případě znamená find vypsal něco, což zase znamená, že soubor je větší než 1 MB.

Na toto jste se neptali:Hledání všech běžných souborů, které jsou větší než 1 MB pod nějakým $dirpath a vytištění krátké zprávy pro každé:

find "$dirpath" -type f -size +1000000c \
    -exec printf '%s is larger than 1 MB\n' {} +

Tyto části kódu by měly být přenositelné na jakýkoli Unix.

Všimněte si také, že pomocí < nebo > v testu otestuje, zda dva zúčastněné řetězce třídí určitým způsobem lexikograficky. Tyto operátory neprovádějí číselná srovnání. K tomu použijte -lt ("menší než"), -le ("menší nebo rovno"), -gt ("větší než") nebo -ge ("větší než nebo rovno"), -eq ("rovná se") nebo -ne ("nerovná se"). Tyto operátory provádějí porovnávání celých čísel.


Linux
  1. Jak najít nejstarší soubor ve stromu adresářů v Linuxu

  2. Linux odstranit soubor s velikostí 0

  3. Jak získat velikost tar.gz v (MB) souboru v pythonu

  1. Zkontrolujte stav souboru v systému Linux pomocí příkazu stat

  2. Jak zjistím maximální velikost zásobníku?

  3. Jak získat fyzickou velikost souboru v Linuxu?

  1. Najděte velikost a volné místo v souborovém systému obsahujícím daný soubor

  2. Jak zjistit velikost vyrovnávací paměti soketu linuxu

  3. najít soubory, které mají číslo v názvu souboru větší než