GNU/Linux >> Znalost Linux >  >> Linux

Zkontrolujte využití disku u souborů vrácených s mezerami

Co kdybychom nechali find zpracovat názvy souborů?

find . -maxdepth 1 -iname '*syed*' -exec du -ch {} +

Co říkáte na tohle?:

find . -maxdepth 1 -iname '*syed*' -print0 | xargs -0 du -ch

Vysvětlení možností:

  • find – Co jste používali k hledání souborů
    • -print0 – Rozdělte každý výsledek znakem null, což je znak, který se nemůže vyskytovat v názvu souboru
  • xargs – Sestaví argumenty do příkazu rourkovaného ze standardního vstupu (stdin)
    • -0 – Přijmout každý argument rozdělený znakem null
    • du -ch – Příkaz, kterému chcete předat argumenty souboru

Pokud jde o důvod, proč jste navrhli sed způsob úniku nefunguje, \ znaky, které se pokoušíte přidat, jsou vloženy za oddělovač argumentů shellu (" ") escapování již proběhlo. Každé slovo, oddělené mezerou, je již argumentem.

Moje řešení s xargs zajišťuje, že každý argument je cesta z find , bez ohledu na mezery.


Linux
  1. Zkontrolujte použité místo na disku v systému Linux pomocí du

  2. Jak najít soubory s určitou podcestou?

  3. Jak najít soubory pomocí příkazu fd v Linuxu

  1. Najít soubory a rozbalit je (s mezerami)

  2. Iterujte seznam souborů s mezerami

  3. Rekurzivně vyhledejte soubory s konkrétní příponou

  1. Najděte všechny soubory s názvem obsahujícím řetězec

  2. Vypsat všechny soubory grafických obrázků s find?

  3. Odstranění souborů pomocí rm pomocí find a xargs