#1 Le 11/12/2024, à 14:04
- Gelmou
[Résolu] Problème avec mv et/ou dossier ou répertoire
Bonjour,
une question de débutant (ça tombe bien j'en suis un...)
Pour m'entraîner dans l'apprentissage des commandes du Terminal,
je viens de créer un dossier (ou un répertoire ?) avec la commande :
mkdir Poubelleries
Et il existe puisque il apparaît avec la commande :
ls -la
drwxrwxr-x 2 gelmou gelmou 4096 déc. 11 13:25 Poubelleries
En plus il figure bien en tant que répertoire dont moi le propriétaire possède les droits rwx
Et je peux aller dedans :
gelmou@zenon:~/Documents$ cd Poubelleries/
gelmou@zenon:~/Documents/Poubelleries$
Alors ma question est :
pourquoi quand je veux y déplacer un fichier le Terminal me retourne que :
gelmou@zenon:~/Documents$ mv rapport.txt /Poubelleries/
mv: impossible de créer le fichier standard '/Poubelleries/': N'est pas un dossier
Alors voilà, mon étourderie de débutant doit m'aveugler,
mais puisque aveugelment, il occulte totalement ma vision...
Vite, venez lever le voile !
Merci d'avance...
Dernière modification par Gelmou (Le 11/12/2024, à 14:39)
Hors ligne
#2 Le 11/12/2024, à 14:17
- jplemoine
Re : [Résolu] Problème avec mv et/ou dossier ou répertoire
En étant sous ~/Documents, il y a une grosse différence entre
"Poubelleries" : qui est dans le répertoire courant
et "/Poubelleries" qui est censé être sous le répertoire racine (/).
Donc, je pense (je n'ai pas testé) que la syntaxe de ce que tu veux faire est :
mv rapport.txt Poubelleries/
(sans le / devant Poubelleries)
C'est la différence entre le chemin relatif (qui dépend du répertoire courant) et le chemin absolu (qui est décrit depuis la racine).
Tu peux aussi assurer le répertoire avec la syntaxe :
mv rapport.txt ~/Documents/Poubelleries/
~ étant le répertoire "home" de ton utilisateur.
NB : dossier ou répertoire, c'est la même chose.
- répertoire : expression de "vieux" (dont je fais partie)
- dossier : expression de "djeuns"
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#3 Le 11/12/2024, à 14:38
- Gelmou
Re : [Résolu] Problème avec mv et/ou dossier ou répertoire
Bon sang mais c'est bien sur !
J'avais pris un exemple sur un tuto sauf que j'avais pas encore compris qu'il utilisait le répertoire racine /temp/ comme répertoire cible.
Tout s'explique.
Et en plus je savais pour les différences d'adresses entre absolues et relatives.
Mais voilà...
Merci beaucoup jplemoine.
Hors ligne
#4 Le 11/12/2024, à 14:46
- jplemoine
Re : [Résolu] Problème avec mv et/ou dossier ou répertoire
De rien beaucoup...
C'est tellement classique....
C'est pour ça que souvent, on met le répertoire cible en variable et on utilise que des chemins absolus...
Pour info, en bash, c'est un truc du genre :
rep_courant=$(dirname $0)
--> ça permet de récupérer le répertoire qui contient le script que tu lances.
Si tu accèdes à d'autre fichiers du même répertoire (par exemple, toto.txt), on écrit alors :
${rep_courant}/toto.txt
Comme ça, si tu lances le script depuis un autre répertoire, ça fonctionne alors que
toto.txt
ou
./toto.txt
ne fonctionneront pas.
NB : la syntaxe avec les { } permet de séparer la variable du reste du texte. Elle n'est pas toujours nécessaire mais elle permet d'unifier l'écriture.
Dernière modification par jplemoine (Le 11/12/2024, à 14:47)
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#5 Le 11/12/2024, à 15:05
- Gelmou
Re : [Résolu] Problème avec mv et/ou dossier ou répertoire
Oui,alors justement comme je commence par la même occasion à apprendre le script,
quand il s'agit de faire exécuter un script, pour le moment j'en suis à l'exécuter depuis le répertoire courant.
Donc je lance depuis le répertoire où se trouvent stockés les fichiers .bash par exemple :
./main.bash
et là ça fonctionne.
Par contre pour le reste j'avoue que je n'ai pas compris ce que tu expliques concernant ces commandes :
rep_courant=$(dirname $0)
et
${rep_courant}/toto.txt
Faut dire que je n'ai pas encore eu l'occasion d'aborder cette question puisque j'en suis à apprendre le langage des commandes de base du bash.
Mais bon, je garde sous le coude tes explications pour le jour où je vais recroiser le sujet.
Hors ligne
#6 Le 11/12/2024, à 18:25
- Watael
Re : [Résolu] Problème avec mv et/ou dossier ou répertoire
repCourant=${0##*/}
c'est portable pour les shells compatibles POSIX.
ici, les accolades sont inutiles.
var=$repCourant/toto.txt
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 11/12/2024, à 18:40
- Gelmou
Re : [Résolu] Problème avec mv et/ou dossier ou répertoire
Ah oui, le POSIX, j'en ai entendu parler pour la première fois hier,
après votre débat sur mon post " problème avec if test " avec sputnick
sur une vidéo de formation.
Ainsi que de la question de [[ ]]...
On y va, on y va...
Hors ligne