Comment déplacer un dossier sous Unix à l'aide de MV, uniquement lorsque la cible se trouve sur le même lecteur
10
J'ai besoin de déplacer un dossier à l'aide de la commande mv unix, mais uniquement si la cible se trouve dans le même lecteur ou le même système de fichiers. Quelle serait la meilleure approche?
Pensez-vous qu'il est compatible entre les distributions Linux?
Juste pour diffuser la meilleure pratique, utilisez $(...)plutôt `...`. Ce dernier est déconseillé au profit du premier.
Shahbaz
Merci @Shahbaz, venez de le modifier avec votre recommandation!
fedorqui
@zapp Je ne sais pas, devrait le tester. Mon expérience avec statme dit que c'est parfois délicat, au moins avec SunOS. Mais étant Linux j'espère qu'il est compatible. Avec mon Ubuntu 12, ça va.
fedorqui
cela %dgénère des valeurs différentes pour différents répertoires (même partition) essayez avec votre /et/tmp
Kent
2
Ce n'est probablement pas la solution la plus propre, mais vous pouvez utiliser le fait que des liens durs ne peuvent pas être créés entre les disques.
ln /path1/file /path2/file 2>/dev/null
if[[ $?==0]]then
rm /path1/file
fi
Réponses:
Basé sur Comment vérifier si deux répertoires ou fichiers appartiennent au même système de fichiers ( /unix// ):
Afin que vous puissiez:
puis comparer.
Vous pouvez également écrire comme ceci:
Autre option. Tiré également de la question Stackexchange :
la source
$(...)
plutôt`...`
. Ce dernier est déconseillé au profit du premier.stat
me dit que c'est parfois délicat, au moins avec SunOS. Mais étant Linux j'espère qu'il est compatible. Avec mon Ubuntu 12, ça va.%d
génère des valeurs différentes pour différents répertoires (même partition) essayez avec votre/
et/tmp
Ce n'est probablement pas la solution la plus propre, mais vous pouvez utiliser le fait que des liens durs ne peuvent pas être créés entre les disques.
la source