L'autre jour, nous avons appris à cd et ls en une seule commande . Aujourd'hui, nous verrons encore une autre astuce Bash sympa - cp
ou mv
et cd
en une seule commande. Signification - nous allons copier ou déplacer des fichiers/répertoires d'un emplacement à un autre et cd
dans le répertoire de destination instantanément. Bien sûr, nous pouvons le faire avec un one-liner commande. Par exemple, il est possible de copier ou de déplacer des fichiers/répertoires vers un autre répertoire et cd dans le répertoire de destination en utilisant la commande :
cp source destination && cd destination
Ou,
mv source destination && cd destination
Cependant, nous n'allons pas le faire maintenant. Nous utilisons une simple fonction bash pour combiner la commande cp ou mv et la commande cd et l'exécuter comme une seule commande. Cette astuce devrait fonctionner sur tous les systèmes de type Unix prenant en charge BASH.
Comment cp ou mv et cd en une seule commande
Ouvrez votre ~/.bashrc
fichier dans votre éditeur préféré :
$ nano ~/.bashrc
Ajoutez les lignes suivantes à la fin :
#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 }

Enregistrez et fermez le fichier. Exécutez la commande suivante pour appliquer les modifications.
$ source ~/.bashrc
Maintenant, copiez ou déplacez des fichiers/répertoires d'un emplacement à un autre et vous serez automatiquement redirigé vers l'emplacement de destination.
Créons quelques exemples de répertoires et de fichiers.
$ mkdir dir1 dir2
$ touch file1 file2
Copiez maintenant le fichier 1 dans le répertoire 1 à l'aide de la commande :
$ cpcd file1 dir1
$ pwd /home/sk/dir1
Comme vous le voyez, la commande ci-dessus copie le file1
vers dir1
puis automatiquement cd
dans le dir1
emplacement.
Déplacement suivant file2
vers dir2
en utilisant la commande :
$ cd
$ mvcd file2 dir2
$ pwd /home/sk/dir2
Cette commande copie file2
vers dir2
et automatiquement cd
dans le dir2
emplacement.
Exemple de résultat :

J'espère que cela vous aidera.
Autres conseils pour Bash
- Renommer les fichiers sans saisir deux fois le nom complet sous Linux
- Une fonction Bash pour extraire des archives de fichiers de différents types