GNU/Linux >> Tutoriels Linux >  >> Linux

Existe-t-il un moyen de faire en sorte que mv crée le répertoire à déplacer s'il n'existe pas?

Que diriez-vous de ce one-liner (en bash):

mkdir --parents ./some/path/; mv yourfile.txt $_

Décomposer cela :

mkdir --parents ./some/path

crée le répertoire (y compris tous les répertoires intermédiaires), après quoi :

mv yourfile.txt $_

déplace le fichier vers ce répertoire ($_ se développe jusqu'au dernier argument passé à la commande shell précédente, c'est-à-dire :le répertoire nouvellement créé).

Je ne sais pas dans quelle mesure cela fonctionnera dans d'autres shells, mais cela pourrait vous donner quelques idées sur ce qu'il faut rechercher.

Voici un exemple utilisant cette technique :

$ > ls
$ > touch yourfile.txt
$ > ls
yourfile.txt
$ > mkdir --parents ./some/path/; mv yourfile.txt $_
$ > ls -F
some/
$ > ls some/path/
yourfile.txt

mkdir -p `dirname /destination/moved_file_name.txt`  
mv /full/path/the/file.txt  /destination/moved_file_name.txt

Enregistrer sous un script nommé mv ou mv.sh

#!/bin/bash
# mv.sh
dir="$2"
tmp="$2"; tmp="${tmp: -1}"
[ "$tmp" != "/" ] && dir="$(dirname "$2")"
[ -a "$dir" ] ||
mkdir -p "$dir" &&
mv "[email protected]"

Ou mettez à la fin de votre fichier ~/.bashrc une fonction qui remplace le mv par défaut sur chaque nouveau terminal. L'utilisation d'une fonction permet à bash de la conserver en mémoire, au lieu d'avoir à lire un fichier de script à chaque fois.

function mv ()
{
    dir="$2"
    tmp="$2"; tmp="${tmp: -1}"
    [ "$tmp" != "/" ] && dir="$(dirname "$2")"
    [ -a "$dir" ] ||
    mkdir -p "$dir" &&
    mv "[email protected]"
}

Celles-ci sont basées sur la soumission de Chris Lutz.


Linux
  1. Quel est le moyen le plus sûr de vider un répertoire dans *nix ?

  2. Comment créer un fichier uniquement s'il n'existe pas ?

  3. Existe-t-il un moyen de copier le texte de l'info-bulle dans Firefox ?

  4. Existe-t-il un moyen de déterminer la taille décompressée d'un fichier .bz2 ?

  5. Existe-t-il un moyen de faire en sorte que Nano prenne en charge la saisie semi-automatique et la fermeture automatique des parenthèses ?

Comment utiliser la commande mkdir pour créer ou créer un répertoire Linux

Créer des raccourcis vers les répertoires fréquemment utilisés sous Linux

Une commande pour créer un répertoire et un fichier à l'intérieur de celui-ci commande linux

Existe-t-il un moyen d'obtenir le dernier fichier jar du serveur via une URL qui ne change pas ?

Quelle est la manière la plus simple de créer un paquet virtuel dans debian ?

Quelle est la meilleure façon d'apprendre SELinux ?