GNU/Linux >> Znalost Linux >  >> Linux

Jak rekurzivně kopírovat soubory s konkrétní příponou souboru

V systému Linux příkaz „cp ‘, které standardy pro ‘Kopírovat ‘ se používá ke kopírování souborů a složek do jiné složky. Ve výchozím nastavení je v Linuxu k dispozici jako součást GNU Coreutils sada nástrojů.

Nejzákladnější použití příkazu cp je určit soubory, které mají být zkopírovány jako argumenty, a zadat cílovou složku jako poslední argument.

$ cp file1 file2 file3... fileN target_folder/

Kopírování souborů se specifickými příponami souborů

Můžete dokonce kopírovat soubory se stejnou příponou (např. .txt , .jpg , .mp4 ) společně pomocí zástupných znaků, jak je uvedeno níže:

$ cp *.jpg *.mp4 *.mp3 media/

Tím se zkopírují všechny JPEG obrázky, MP3, a MP4 multimediální soubory do složky „media ‘. Všimněte si, že toto lze použít pouze pro soubory. Pokud se pokusíte zkopírovat složky ve výše uvedeném formátu, zobrazí se varování, že složka je „Není prázdná ‘.

Pro kopírování složek musíme zadat '-r' (rekurzivní ) vlajka. Rekurzivní znamená, že všechny soubory v této složce, soubory v podsložkách atd. budou zkopírovány.

$ cp -r folder1/ folder2/ file1 file2 target_folder/

V rámci ‚cp‘ však žádný způsob neexistuje pro rekurzivní kopírování souborů určité přípony. Kdykoli '-r' je zadáno, program vždy zváží všechny soubory v podsložkách pro kopírování.

Vyhledání a kopírování souborů s příponou souboru

Abychom toho dosáhli, používáme příkaz find, který se jednoduše používá k vyhledávání souborů a složek v Linuxu na základě parametrů souboru nebo složky:název souboru, přípona, velikost atd.

Využijeme příkaz najít k rekurzivnímu vyhledání souborů s konkrétní příponou souboru a poté předání tohoto výstupu do cp příkaz k jejich zkopírování.

Syntaxe k vyhledání souborů konkrétní přípony pomocí příkazu najít je:

$ find <folder_to_search> -name ‘*.<extension>

Chcete-li například rekurzivně vyhledat všechny soubory JPG v aktuální složce:

$ find . -name '*.jpg'

Nakonec musíme tento výstup převést do příkazu cp . K tomu používáme „xargs“ příkaz k vytvoření ‚cp‘ zvažte výstup ‘najít‘ jako jeho argumenty. Také používáme '-t' vlajka cp , k určení cílového adresáře, bez kterého program považuje výstup ‘najít‘ jako cílový adresář.

$ find . -name '*.jpg' | xargs cp -t Pictures2/

Tedy všechny soubory s příponou '.jpg' byly zkopírovány do složky ‚Obrázky2‘ .

Závěr

V tomto článku jsme se naučili, jak v Linuxu rekurzivně kopírovat soubory s konkrétní příponou. Všimněte si, že tato metoda je užitečná, pokud pracujete s menším počtem souborů. U velkého počtu souborů (například v desítkách tisíc) musíte ke kopírování souborů rekurzivně použít jiný přístup.

Pokud máte nějaké dotazy nebo zpětnou vazbu, dejte nám vědět v komentářích níže.


Linux
  1. Jak používat Inotifywait ke sledování adresáře pro vytváření souborů s konkrétní příponou?

  2. Jak odstranit soubory se specifickou příponou v příkazovém řádku Linuxu

  3. Jak najít všechny soubory s velikostí souboru nula (0) bajtů v adresáři rekurzivně

  1. Jak rekurzivně kopírovat adresáře pomocí rsync při vyloučení konkrétních souborů

  2. Jak zkopíruji složku se soubory do jiné složky v Unixu/Linuxu?

  3. Jak transakčně zkopírovat soubor?

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

  2. Jak zkopíruji soubor s názvem začínající tečkou?

  3. Jak mohu rekurzivně kopírovat soubory podle přípony souboru a zachovat adresářovou strukturu?