GNU/Linux >> Znalost Linux >  >> Linux

Jak najít a zkopírovat určitý typ souborů z jednoho adresáře do druhého v Linuxu

Můj externí pevný disk je nepořádek. Ano, protože jsem všechny soubory vyhodil do jednoho adresáře. Byl jsem prostě příliš líný organizovat soubory a složky ve správném pořadí. Když hledám konkrétní soubor, zabralo mi to více času. Myslel jsem si tedy, že by bylo mnohem lepší, kdybych určitý typ souborů uspořádal do samostatných adresářů. Rozhodl jsem se vytvořit složky pro každý typ souboru a uložit soubory do příslušných složek. Řekněme například, že všechny mediální soubory (audio a video) by měly jít do adresáře s názvem Multimédia , obrázkové soubory do Obrázky složku a oficiální související materiály do složky s názvem ostechnix .

Ruční vyhledání a kopírování jednotlivých typů souborů je však zdlouhavé a časově náročné. Pokud máte velký počet souborů, bude nalezení a zkopírování všech souborů trvat hodiny. Rychle jsem tedy hledal na Google a našel vhodné řešení. Pokud jste někdy chtěli zkopírovat určitý typ souborů z jednoho adresáře do druhého v operačních systémech podobných Unixu, zde je jeden způsob, jak to udělat. Může být mnoho způsobů, jak to udělat, ale zjistil jsem, že následující metoda je snadná a jednoduchá.

Najděte a zkopírujte určitý typ souborů z jednoho adresáře do druhého v Linuxu

K uspořádání souborů použijeme příkaz 'find'. Příkaz Najít je na většině distribucí podobných Unixu předinstalován, takže se neobtěžujme jeho instalací. Pro účely této příručky ukážu, jak rychle najít a zkopírovat soubory mp3 z adresáře s názvem test1 do jiného adresáře s názvem test2 .

StáhnoutZdarma e-kniha:„Beyond Linux® From Scratch – Verze 6.3“

Pojďme zkontrolovat obsah adresáře test.

$ ls /home/sk/test1

Ukázkový výstup:

'Bombay Rockers.mp3' 'Marconi Union - Sleepless.mp3' wiua9.jpg
 books.txt Maruvaarthai.mp3

Jak vidíte ve výše uvedeném výsledku, v adresáři test1 jsou tři soubory mp3. Zkopírujeme tyto mp3 soubory do adresáře test2. Chcete-li tak učinit, přejděte do adresáře test1 pomocí příkazu:

$ cd /home/sk/test1/

Poté spusťte následující příkaz a vyhledejte a zkopírujte všechny soubory, které odpovídají příponě .mp3 .

$ find -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

Pojďme rozebrat výše uvedený příkaz a uvidíme, co jednotlivé možnosti dělají.

  • najít - Je to příkaz k vyhledání souborů a složek v systémech podobných Unixu.
  • -name '*.mp3' - Hledat soubory s příponou .mp3.
  • -exec cp - Řekne vám, abyste provedli příkaz 'cp' ke zkopírování souborů ze zdrojového do cílového adresáře.
  • {} - je automaticky nahrazeno názvem souborů nalezených příkazem 'find'.
  • /home/sk/test2/ - Cílový adresář pro uložení odpovídajících souborů.
  • \; - Označuje, že příkazy, které mají být provedeny, jsou nyní dokončeny a že příkaz provést znovu při příštím zápase.

Průhledná? Dobrý! Nyní se podívejme do adresáře test2, abychom ověřili, zda byly soubory zkopírovány správně.

$ ls /home/sk/test2

Ukázkový výstup by byl:

'Bombay Rockers.mp3' Maruvaarthai.mp3
'Marconi Union - Sleepless.mp3'

Jak vidíte, všechny soubory s příponou .mp3 byly zkopírovány z adresáře test1 do adresáře test2. Podobně můžete kopírovat jiné typy souborů do různých adresářů dle vašeho výběru, jak je popsáno výše.

Výše uvedený příkaz zkopíruje všechny soubory *.mp3 ze zdrojového adresáře a jeho podadresářů. Pokud to nechcete dělat, použijte -maxdepth vlajka. Například následující příkaz zkopíruje všechny soubory .mp3 pouze ze zdrojového adresáře, ale ne z jeho podadresářů.

$ find -maxdepth 1 -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

Tímto způsobem můžete ušetřit spoustu času, když chcete najít určitý typ souboru. Tento trik může být užitečný, když musíte přenést velké množství různých typů souborů z jednoho adresáře do druhého.

Související čtení:

  • Zkopírujte konkrétní typy souborů při zachování struktury adresářů v systému Linux

Další podrobnosti naleznete na manuálových stránkách.

$ man find

Existuje také skript s názvem 'Classifier' který automaticky uspořádá vaše soubory na základě přípony souboru do různých adresářů. Více podrobností lze nalézt v odkazu níže.

  • Jak automaticky uspořádat podobný typ souborů do konkrétních složek

Doufám, že to pomůže.


Linux
  1. Použijte Najít k nalezení určitého adresáře a odstranění všech souborů v něm kromě jednoho adresáře?

  2. Naučte se kopírovat soubory a složky z/na jiný server

  3. Zkopírujte strukturu složek (bez souborů) z jednoho umístění do druhého

  1. Jak zjistit počet souborů v adresáři a podadresářích

  2. Jak kopírovat nebo klonovat oprávnění z jednoho souboru do druhého v systému Linux

  3. Jak zkopíruji strom adresářů, ale ne soubory v Linuxu?

  1. Jak přesunout všechny soubory (včetně skrytých) z jednoho adresáře do druhého?

  2. Jak přesunout (a přepsat) všechny soubory z jednoho adresáře do druhého?

  3. Jak zkopírovat 10 posledních souborů z jednoho adresáře do druhého?