Chcete-li přesunout soubory z jednoho adresáře do druhého, použijte „mv ‘ příkaz se používá v Linuxu. Tento příkaz je ve výchozím nastavení k dispozici v Linuxu a lze jej použít k přesouvání souborů i adresářů.
Syntaxe, která se má použít pro příkaz mv je:
$ mv file1 file2 /tmp

Pokud chceme přesunout soubory, řekněme, stejné přípony (např. txt ) nebo které jsou očíslovány přírůstkovým způsobem (např. soubor_1 , soubor_2 , atd.), lze k určení všech těchto souborů použít zástupné znaky namísto zadávání jednotlivých jmen.
$ mv *.txt /tmp $ mv file_* /tmp
V podstatě „mv ‘ může mít libovolný počet argumentů, což jsou soubory nebo adresáře, které mají být přesunuty. Posledním argumentem je cílový adresář, kam mají být přesunuty.
Problém s přesunem velkého počtu souborů
Linuxové systémy mají předem definovaný limit na maximální počet argumentů, které lze použít s jedním příkazem. Tento limit se liší systém od systému v závislosti na velikosti zásobníku.
Pokud je tedy zadán velmi vysoký počet souborů se zástupným znakem „mv ‘, Např. přes sto tisíc souborů, vyhodí chybu:„Seznam argumentů je příliš dlouhý “.
Například na obrázku níže složka obsahuje 253420 soubory. Když se je pokusíme přesunout, zobrazí výše uvedenou chybu.
$ ls -l | wc -l $ ls | head -1000

$ mv file_* /tmp

Řešení:Použijte příkaz Najít
K vyřešení tohoto problému používáme „najít ‘příkaz. „najít ‘ příkaz v podstatě vyhledává soubory v adresářích na základě různých parametrů.
Spouštíme „najít ‘ ve stejném adresáři jako soubory, které chceme přesunout. Potom použijeme '-exec'
parametr „najít ‘ což vám umožní spustit jakýkoli příkaz nad výstupem find.
Spouštíme ‘mv ‘ s '-exec'
parametr.
$ find . -name "file_*" -exec mv {} /tmp \;

Zde je první argument, '.'
((tečka) aktuální adresář) je adresář, kde se nacházejí soubory. Argument “-name”
a řetězec za tím určují výraz, pomocí kterého lze vypsat požadované soubory.
Poté zadáme „mv ‘ příkaz za argumentem '-exec'
. Otevřené závorky '{ }'
jsou zástupný symbol pro argument, který má být použit z výstupu find.
Můžete to potvrdit spuštěním následujícího a ověřit, že soubory byly úspěšně přesunuty do ‘/tmp’ .
$ ls -l /tmp | wc -l

Související čtení :Jak zkopírovat velké množství souborů v Linuxu
Závěr
V tomto článku jsme viděli, jak přesunout velké množství souborů z jednoho adresáře do druhého a jak úspěšně obejít „Seznam argumentů je příliš dlouhý “ chyba v Linuxu.
Pokud máte nějakou zpětnou vazbu nebo dotazy, dejte nám vědět v komentářích níže!