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