Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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... tongue
Vite, venez lever le voile ! lol
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