Příkaz mv se používá k přesunu a/nebo přejmenování souborů v distribucích Linuxu a BSD. Správci systému pravidelně používají mv k provádění operací na souborovém systému Linux. Nedělejte si starosti, pokud jste začínající uživatel s malými nebo žádnými znalostmi o tomto příkazu. Dnes jsme připravili tuto příručku, abychom vám poskytli všechny informace, které potřebujete ohledně nástroje mv. Naučíte se různé funkce spojené s tímto příkazem a získáte potřebné zkušenosti prováděním ukázkových příkazů uvedených níže. Naštěstí pro vás je mv jedním z nejzákladnějších linuxových terminálových příkazů a celkem snadno se ovládá.
Základní příklad Linux mv Command
Vzhledem k tomu, že mv nabízí pouze několik parametrů příkazového řádku, je velmi snadné se to naučit. mv je však také velmi robustní a při chytrém použití může provádět složité operace se soubory. Podívejte se tedy na níže uvedené příkazy a zjistěte, jak můžeme použít mv v našem každodenním počítání.
1. Přesunout soubory přímo
Při jednoduchém použití mv zkopíruje zdrojový soubor do cílového adresáře a odstraní zdroj z jeho předchozího umístění. Pro ilustraci jsme vytvořili jednoduchý adresář s názvem Test, který obsahuje adresář s názvem dir1 a textový soubor s názvem test . Můžete je snadno vytvořit pomocí následujících příkazů.
$ mkdir Test && cd Test/ && mkdir dir1 && touch test $ tree $ mv test dir1/
Nejprve jsme vytvořili soubory a adresáře a poté pomocí příkazu tree vizualizovali hierarchii souborového systému. Poslední příkaz je operace, která nás zajímá. Přesune soubor test do dir1 adresář. Takže první argument mv je zdroj a druhý je cíl. Strom můžete znovu použít k zobrazení nové hierarchie.
2. Přejmenovat soubory
Syntaxe pro přesun a přejmenování souborů je stejná. Místo cíle však musíme zadat nový název. Jednoduše řečeno, když použijete mv na dva soubory umístěné na stejném souborovém systému Linux, povede to k operaci přejmenování souboru.
$ cd dir1 $ mv test TEST--
Nyní se jednoduše vraťte do nadřazeného adresáře a zadejte příkaz stromu znovu. Tím ověříte, že v tomto souborovém systému nemáte žádný soubor s názvem test. Měli byste vidět soubor, že existuje nový soubor s názvem TEST .
3. Zabránit přepsání souborů
Ve výchozím nastavení mv přepíše všechny soubory, které mají v cílovém adresáři stejný název. Můžete to ověřit pomocí níže uvedených příkazů.
$ cp TEST dir1 $ mv TEST dir1/TEST $ tree
Takovému přepsání však můžeme snadno zabránit pomocí -n možnost, jak ukazuje níže uvedený příklad.
$ cp dir1/TEST . $ mv -n TEST dir1/TEST $ tree
Nyní vidíme, že náš souborový systém obsahuje oba soubory. -n volba má také dlouhý tvar nazvaný –no-clobber . Vyzkoušejte je oba, pokud si je chcete na nějakou dobu zapamatovat.
4. Povolit interaktivní režim při přepisování souborů
Můžete také nastavit interaktivní režim v mv, což má za následek dotaz, zda chcete přepsat cílový soubor nebo ne. Ačkoli je to užitečné pro začínající uživatele, není jasné, že to zastaví vaše automatizační skripty.
$ mv -i TEST dir1/TEST mv: overwrite 'dir1/TEST'?
Jednoduše zadejte y nebo n ve výše uvedené výzvě, abyste povolili/zakázali přepisování souboru. Můžete také použít alternativní dlouhý tvar –interactive místo -i .
5. Před přepsáním souborů vytvořte zálohy
Před prováděním operací se soubory ve velkém měřítku je vždy dobré vytvořit zálohy. Začínající uživatelé Linuxu často své soubory přepisují neochotně. Naštěstí nám mv umožňuje poměrně snadno zálohovat naše cílové soubory. Rychle se podívejte na níže uvedený obrázek, abyste viděli, jak to funguje.
$ mv --backup TEST dir1/TEST $ tree
Výstup příkazu stromu ukazuje, že zdrojový soubor byl úspěšně přesunut, a existuje další soubor s názvem TEST~ v cílovém adresáři. Je to záloha předchozího souboru. Tuto možnost použijte vždy, když si nejste jisti přesným cílovým adresářem nebo přidruženými soubory.
6. Nastavit vlastní příponu pro záložní soubory
Jak jsme již viděli, mv používá ~ symbol jako jeho výchozí záložní příponu. Můžeme to však změnit na cokoli jiného pomocí -S volba. Níže uvedený příklad to demonstruje pomocí nové záložní přípony .BKP.
$ mv -S .BKP TEST dir1 $ mv --suffix=.BKP TEST dir1
Můžete také použít –příponu možnost namísto -S jestli chceš. Nastavení přizpůsobených přípon pro naše záložní soubory usnadňuje jejich identifikaci a lepší porozumění souborovému systému Linux.
7. Aktualizujte cílový soubor
Příkaz Linux mv nám umožňuje aktualizovat cílové soubory na základě jejich dostupnosti a časového razítka. V tomto případě bude operace přesunu úspěšná, pouze pokud je zdrojový soubor novější než cílový soubor nebo pokud cílový soubor zcela chybí.
$ rm -ri * $ mkdir dir1 && touch test dir1/test
$ mv -u test dir1/
Nejprve jsme smazali veškerý obsah Test/ a poté je znovu vytvořil. Udělal jsem to, takže oba testovací soubory jsou vytvořeny současně, a proto jsou stejné. Když se teď pokusím přesunout test do dir1 , přesun se nezdařil a skončil tiše. Stalo se to, protože mv zjistil, že jsou stejné, a usoudil, že není potřeba žádná aktualizace.
8. Nakonfigurujte kontext zabezpečení SELinux na výchozí
Kontext zabezpečení SELinux označuje prostředky CPU v systémech, kde je povolen. Tyto informace používá k identifikaci, zda je daný zdroj přístupný konkrétnímu uživateli nebo ne. Kontext SELinuxu můžete snadno nastavit na výchozí pomocí -Z možnost, jak je ukázáno níže.
$ touch new # create another file for testing $ mv -Z new dir1/ $ mv --context new dir1/ $ ls -Z dir1/
Zde mv používá výchozí kontext SELinux vašeho systému při přesouvání názvu souboru new do nového umístění. Můžete to ověřit pomocí posledního výše uvedeného příkazu.
9. Povolit podrobný výstup
Stejně jako mnoho tradičních terminálových příkazů Linuxu nám také příkaz mv umožňuje zobrazit podrobný výstup jeho operací. Je to užitečné zejména pro začátečníky nebo když přenášíte velké množství souborů z jednoho souborového systému do druhého.
$ mv -v dir1/new . $ mv --verbose dir1/new . renamed 'dir1/new' -> './new'
Výše uvedené příkazy jsou ekvivalentní a přenášejí soubor dir1/new do našeho testu složka. Všimněte si, že tečka „. Symbol ‘ označuje aktuální adresář v operačních systémech podobných Unixu. Tyto příkazy by měly poskytnout stručné vysvětlení základní operace se soubory.
10. Povolit cílový adresář
Někdy může být pro mv obtížné namapovat zdrojové soubory do cílového adresáře, jak uživatel zamýšlí. Může se to stát, pokud mv nedokáže odvodit, zda je cílem cílový adresář nebo soubor. Naštěstí můžeme mv snadno zjistit, zda má být argumentem určení adresář nebo soubor pomocí -t možnost mv.
$ mv -t dir1/new/ new $ mv --target-directory=dir1/new/ new
Když zadáte výše uvedený příkaz, mv přemístí soubor s názvem nový z testu do adresáře Test/dir1/new adresář. Všimněte si, že před zdrojovým argumentem předáváme cílový adresář. Je povinný od -t určí cílový cíl.
11. Zakázat cílový adresář
Nástroj mv nám také umožňuje zcela zakázat cílový cíl. To je užitečné, když se chcete ujistit, že se s cílovými argumenty zachází jako s normálními soubory Linuxu. Stejně jako výše uvedený příklad má i tento příkaz krátký i dlouhý tvar.
$ mv dir1/new/new . $ mv -T new dir1/new/ $ mv --no-target-directory new dir1/new/
Když tedy použijeme -T, mv bude s cílem zacházet jako s běžným souborem nebo –no-target-directory možnost.
12. Povolit vynucené přepisování
Ačkoli moderní implementace příkazu Linux mv dnes nevyžadují před přepsáním výzvu, mv stále nabízí praktickou možnost, jak povolit vynucené přepsání. Tuto možnost můžete použít, abyste se ujistili, že vaše skripty prostředí Linux jsou zpětně kompatibilní a že se nerozbijí na systémech s jinou implementací mv.
$ mv -f test dir1/test $ mv --force test dir1/test
Oba výše uvedené příkazy jsou ekvivalentní a provádějí operaci přesunu, aniž by žádaly uživatele o potvrzení. Takže vaše automatizační skripty by se nezhroutily kvůli mv.
13. Odebrat koncová lomítka
Když v terminálech Linuxu použijete automatické dokončování, přidá se za každý adresář také koncové lomítko. To může způsobit problémy při pohybu souborů. Vývojáři mv tedy také vytvořili praktickou možnost, která tato koncová lomítka odstraní za vás.
$ mv --strip-trailing-slashes dir1/new/ .
–strip-trailing-slashes volba říká mv, aby odstranil všechna koncová lomítka přítomná v argumentech SOURCE. V určitých situacích může být velmi užitečná, takže byste se s touto možností měli seznámit.
14. Přesunout více souborů
Uživatelé Linuxu mohou použít mv pro snadný přesun velkého množství souborů současně. Následující příkaz ukazuje, jak přesunout více než jeden soubor dohromady pomocí mv.
$ touch aaa bbb ccc $ mv aaa bbb ccc dir1/
Můžeme také přesouvat soubory a adresáře společně. V tomto případě mv interpretuje poslední argument jako cílovou složku. Můžete také použít -t možnost zadat cílový cíl.
15. Přesunout soubory pomocí zástupných znaků
Příkaz Linux mv nepodporuje regulární výrazy. Stále však můžete použít některé zástupné znaky k provedení některých základních vzorů. Podívejte se rychle na níže uvedený příklad, abyste viděli, jak můžeme použít zástupné znaky s mv.
$ touch aaa.mp3 bbb.mp3 ccc.mp3 $ mv *.mp3 dir1/ # moves all mp3 files
$ touch AAA BBB CCC $ mv [[:upper:]]* dir1 # moves all files that has uppercase names
$ mv *[[:lower:]] dir1 # moves all files that has lowercase names
Existuje několik dalších zástupných znaků podporovaných mv. Ačkoli nejsou příliš rozsáhlé, pomáhají při rutinních operacích zpracování souborů.
16. Zobrazit ukazatel průběhu
Normálně příkaz mv provádí své operace v rozumném časovém rámci. Pokud však přesouváte velmi velké dokumenty, může to trvat relativně déle. Uživatelé se mohou dokonce domnívat, že se systém zablokoval, pokud to trvá příliš dlouho. Tomuto problému se můžeme vyhnout tím, že přinutíme mv zobrazit ukazatel průběhu, který uživatele informuje.
$ mv dir1/*.mp3 . & progress -mp $!
Tento příkaz přesune všechny mp3 soubory z dir1/ na Test adresář a zobrazí praktický ukazatel průběhu. Používáme linuxový balíček ‘progress ' pro tohle. Můžete to nainstalovat pomocí níže uvedeného příkazu.
$ sudo apt install progress
17. Přesunout soubory pomocí rozšíření složených závorek
Příkazový shell Linuxu umožňuje uživatelům generovat doslovné kombinace pomocí metody zvané expanze složené závorky. Ačkoli mnoho lidí má tendenci to komplikovat, v praxi je to docela jednoduché. Podívejte se pozorně na následující příklady, abyste zjistili, jak funguje rozšiřování závorek v Linuxu a dalších unixových systémech.
$ rm new && touch new.txt new.pdf new.html $ mv new.{pdf,txt,html} dir1/new/ # brace expansion
Takže jakýkoli soubor s názvem new, který má příponu .pdf/.txt/.html, bude přesunut do cílového adresáře. Protože generujeme literály názvu souboru z naší složené závorky, nazýváme tuto operaci rozšíření složené závorky.
18. Přesunout soubory podle velikosti
Zpracování souborů zahrnuje mnoho operací přesunu a velké soubory obvykle zabírají značné množství času procesoru. Mnoho správců tedy zálohuje své dokumenty na základě jejich velikosti. Ukážeme čtenářům, jak přesouvat soubory na základě jejich velikosti pomocí příkazů mv a find.
$ find . -type f -size +1G -exec mv "{}" large_files/ \;
Výše uvedený příkaz přesune všechny soubory větší než 1 GB z aktuálního pracovního adresáře do large_files . Můžete jednoduše změnit hodnotu parametru size a přizpůsobit operaci přesunu.
19. Přesunout soubory podle data modifikace
Datum úpravy je dalším běžným kritériem používaným při zálohování systémových dat. Všechny soubory, které jsou starší než konkrétní dobu, můžete najít pomocí následujícího příkazu.
$ find . -mtime +90 -exec mv "{}" old_files/ \;
Tento příkaz přesune všechny soubory, které jsou starší než 3 měsíce (90 dní) do nového adresáře s názvem staré_soubory . Zde je pozoruhodné, že poskytnutý argument je ve dnech.
20. Přejmenovat více souborů
Ve výchozím nastavení nemůže nástroj mv přejmenovat více souborů současně. Pro takové pokročilé operace se soubory však stále můžeme používat další nástroje, jako je find vedle mv. Níže uvedený příkaz přejmenuje všechny soubory .php na soubory .html.
$ touch {test1,test2,test3}.php $ find . -depth -name "*.php" -exec sh -c 'f="{}"; mv -- "$f" "${f%.php}.html"' \;
Tento příkaz přejmenuje každý soubor .php na soubor .html pomocí mv a přepínače exec příkazu Linux find.
21. Vyhledejte binární informace příkazu Linux mv
Kde se příkaz mv nachází, můžeme zjistit pomocí linuxového příkazu „který“. Vypíše názvy cest nebo odkazů, které zpracovávají konkrétní příkaz, například mv.
$ which mv /usr/bin/mv
Můžete také použít příkaz „whereis“ v Linuxu k zobrazení dalších informací, jako je umístění binárního souboru mv a všech souvisejících ručních souborů, jak je uvedeno níže.
$ whereis mv mv: /usr/bin/mv /usr/share/man/man1/mv.1.gz
22. Zobrazit informace o verzi
Informace o verzi příkazů terminálu Linux nám umožňují najít konkrétní verzi balíčku. Tyto informace o verzi pro mv můžeme snadno zobrazit, jak ukazuje níže uvedený příklad.
$ mv --version
Vytiskne informace o vydání pro balíček mv nainstalovaný ve vašem systému spolu s dalšími informacemi. Tyto informace zahrnují jména všech závislostí a lidí, kteří jsou autory mv.
23. Zobrazit stránku nápovědy
Stránka nápovědy obsahuje souhrnné informace o všech dostupných volbách obslužného programu mv. Je to praktický způsob, jak si zapamatovat málo používané možnosti.
$ mv --help
Protože mv podporuje pouze několik argumentů příkazového řádku, je relativně snazší si je zapamatovat. Naštěstí se vždy můžete podívat na stránku nápovědy, kde najdete rychlé informace o jakékoli konkrétní možnosti.
24. Zobrazit man stránku
Na rozdíl od souhrnných informací poskytovaných nápovědou nabízí manuálová stránka mnohem podrobnější pohled. Kdykoli chcete podrobněji porozumět možnosti nebo konkrétnímu použití, použijte níže uvedený příkaz.
$ man mv
Měl by zobrazit podrobného průvodce vysvětlujícího všechny různé možnosti dostupné pro mv. Před pokusem o jakékoli příkazy, které upravují souborový systém, byste si měli vždy projít manuálovou stránku.
25. Zkontrolujte Alias
Mnoho distribucí Linuxu používá předkonfigurované aliasy k vynucení standardních možností příkazového řádku pro balíčky. Pomocí níže uvedeného příkazu můžete snadno zkontrolovat, zda je mv alias něčeho.
$ alias | grep -iw mv
$ type mv
Poslední příkaz však nebude fungovat, pokud váš systém Linux zahašoval příkaz mv.
Konec myšlenek
Příkaz Linux mv nám umožňuje provádět mnoho operací se soubory, jako je přesouvání souborů, jejich přejmenování, vytváření záloh a tak dále. Ačkoli umožňuje pouze omezený počet možností, můžeme kombinovat mv s mnoha příkazy terminálu Linux, jako je příkaz find, a vytvářet složitější kombinace příkazů. Nastínili jsme 25 nejlepších příkladů mv v každodenní práci na počítači. Některé z nich jsou čistě základní, zatímco jiné mohou být užitečné při řešení dynamičtějších problémů. Doufáme, že jsme vám poskytli základní informace, které jste hledali. Napište své myšlenky do sekce komentářů a dejte nám vědět, pokud máte nějaké dotazy.