Příkaz Linux mv se používá k přesunu souborů a adresářů z jednoho umístění do druhého. Kromě přesouvání souborů může také přejmenovat soubor nebo adresář.
1. Přejmenovat soubor
Při přejmenování souboru pomocí příkazu mv zachovává číslo inodu stejné i po jeho přesunutí na jiné jméno. Pokud přesunete soubor do jiného souborového systému, číslo inodu se bude lišit.
$ cd /tmp $ ls -i sample.txt 136407 sample.txt $ mv sample.txt sample1.txt $ ls -i sample1.txt 136407 sample1.txt
Poznámka: ls -i zobrazí číslo inodu souboru, jak jsme probrali dříve v příkladech našich příkazů ls.
2. Přejmenovat adresář
Stejně jako přejmenování souboru můžete přejmenovat adresář pomocí příkazu mv, jak je uvedeno níže. To také zachová číslo inodu adresáře po přejmenování.
Pokud pouze provedete ls -l dir, zobrazí se soubory v adresáři. Chcete-li zobrazit vlastnosti adresáře, použijte volbu -d. Volba -i zobrazí číslo inodu adresáře.
$ ls -ldi dir1 271365 drwxr-xr-x 2 bala bala 4096 2010-10-30 20:25 dir1 $ mv dir1 dir2 $ ls -ldi dir2 271365 drwxr-xr-x 2 bala bala 4096 2010-10-30 20:25 dir2
3. Před přepsáním požádat o potvrzení
Ve výchozím nastavení nebude příkaz mv žádat o potvrzení, zda cílový soubor existuje, pouze jej přepíše. Abyste tomu zabránili, možná budete chtít získat potvrzení z příkazu přesun před přepsáním cílového souboru pomocí volby -i, jak je uvedeno níže. Operaci přesunu můžete přijmout nebo odmítnout zadáním „y“ nebo „n“.
$ mv -i sample.txt sample1.txt mv: overwrite `sample1.txt'?
Pokud se oprávnění cílového souboru liší od oprávnění zdrojového souboru, příkaz mv -i zobrazí následující potvrzení.
$ mv -i sample.txt sample1.txt mv: try to overwrite `sample1.txt', overriding mode 0644 (rw-r--r--)? y
4. Přesunout více souborů do konkrétního adresáře
Pomocí příkazu mv můžete přesunout více souborů. Následující příklad přesune obsah aktuálního adresáře do jiného adresáře.
$ cd chap1 $ ls -F ex1.c ex2.c ex3.c example/ exercise/ $ mv * chap2/
5. Před přepsáním vytvořte zálohu cíle
Pomocí volby mv –suffix můžete před přepsáním vytvořit zálohu cílového souboru. Původní cílový soubor bude přesunut s příponou zadanou ve volbě -S nebo –suffix.
$ ls file1 file2 $ mv --suffix=.bak file1 file2 $ ls file2 file2.bak
Poznámka: Možná budete chtít vytvořit alias pro ‚mv –suffix‘, který provede zálohu automaticky, kdykoli použijete příkaz mv a pokud existuje cílový soubor.
6. Přesuňte pouze soubory, které v cílovém adresáři neexistují
Když uděláte mv *, přesune všechny soubory do cílového adresáře. Pokud však chcete ze zdrojového adresáře přesunout pouze soubory, které v cílovém adresáři neexistují, použijte volbu mv -u, jak je uvedeno níže.
Následující příkaz přesune pouze ex2 a ex2 z kap1 do kap2, protože soubor ex1 již existuje v kap2, který nebude přesunut.
$ ls chap1 ex1 ex2 ex3 $ ls chap2 ex1 $ mv -u chap1/* chap2/ $ ls chap1 ex1 $ ls chap2 ex1 ex2 ex3