GNU/Linux >> Znalost Linux >  >> Linux

Najít soubory a rozbalit je (s mezerami)

Může existovat jiný způsob, jak dosáhnout toho, co chcete. V podstatě

  1. Použijte najít příkaz pro výstup cesty k jakýmkoli souborům, které hledáte. Přesměrovat stdout na vámi zvolený název souboru.
  2. Pak tar s volbou -T, která mu umožní vzít seznam umístění souborů (ten, který jste právě vytvořili pomocí find!)

    find . -name "*.whatever" > yourListOfFiles
    tar -cvf yourfile.tar -T yourListOfFiles
    

Použijte toto:

find . -type f -print0 | tar -czvf backup.tar.gz --null -T -

Bude:

  • zacházet se soubory s mezerami, novými řádky, úvodními pomlčkami a dalšími vtipnostmi
  • zpracovat neomezený počet souborů
  • nebude opakovaně přepisovat soubor backup.tar.gz jako při použití tar -c s xargs udělá, když máte velký počet souborů

Viz také:

  • Příručka GNU tar
  • Jak mohu vytvořit tar z stdin?, vyhledejte null

Linux
  1. Najděte a zkopírujte soubory

  2. Iterujte seznam souborů s mezerami

  3. Najděte více souborů a přejmenujte je v Linuxu

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

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

  3. Hledání a mazání souborů s konkrétním datem

  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Jak najít soubory s oprávněními SUID a SGID v Linuxu

  3. Pomocí grep vyhledejte obsah v souborech a přesuňte je, pokud se shodují