Onehdy jsme se naučili, jak cd a ls jedním příkazem . Dnes uvidíme další skvělý Bash tip - cp nebo mv a cd v jednom příkazu. Význam - budeme kopírovat nebo přesouvat soubory/adresáře z jednoho umístění do druhého a cd okamžitě do cílového adresáře. Samozřejmě to můžeme udělat s jednovložkou příkaz. Například je možné zkopírovat nebo přesunout soubory/adresáře do jiného adresáře a cd do cílového adresáře pomocí příkazu:
cp source destination && cd destination
Nebo,
mv source destination && cd destination
Nyní se k tomu však nechystáme. Používáme jednoduchou funkci bash zkombinovat příkaz cp nebo mv a příkaz cd a spustit jej jako jediný příkaz. Tento trik by měl fungovat na všech unixových systémech, které podporují BASH.
Jak cp nebo mv a cd v jednom příkazu
Otevřete svůj ~/.bashrc soubor ve vašem oblíbeném editoru:
$ nano ~/.bashrc
Na konec přidejte následující řádky:
#cp and cd in one command
cpcd (){
if [ -d "$2" ];then
cp $1 $2 && cd $2
else
cp $1 $2
fi
}
#mv and cd in one command
mvcd (){
if [ -d "$2" ];then
mv $1 $2 && cd $2
else
mv $1 $2
fi
}
Uložte a zavřete soubor. Spusťte následující příkaz, aby se změny projevily.
$ source ~/.bashrc
Nyní zkopírujte nebo přesuňte soubory/adresáře z jednoho umístění do druhého a automaticky se dostanete do cílového umístění.
Udělejme nějaké ukázkové adresáře a soubory.
$ mkdir dir1 dir2
$ touch file1 file2
Nyní zkopírujte soubor1 do dir1 pomocí příkazu:
$ cpcd file1 dir1
$ pwd /home/sk/dir1
Jak vidíte, výše uvedený příkaz zkopíruje file1 do dir1 a poté automaticky cd do dir1 umístění.
Další přesun file2 do dir2 pomocí příkazu:
$ cd
$ mvcd file2 dir2
$ pwd /home/sk/dir2
Tento příkaz zkopíruje file2 do dir2 a automaticky cd do dir2 umístění.
Ukázkový výstup:
Doufám, že to pomůže.
Další Bash tipy
- Přejmenovávejte soubory bez zadávání celého jména dvakrát v systému Linux
- Funkce Bash pro extrahování archivů souborů různých typů