Forum Linux.débutant {debutant] commande MV mv

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
20
oct.
2016

voila jai appris la commande mv donc move pour deplacer des fichier

on est daccord qu'un film est un fichier

donc si je veux deplacer une film dans un dossier je fais

mv [www.Cpasbien.pe] silicon.valley.102.french.ahdtv.x264-bawls.mp4 silicon valley/

je deplace lepisode du dossier telechargement au dossier silicon valey placer aussi dans le dossier telechargement
mais la commande ne marche pas… pk ?

et cest vraiment pas plus rapide decrire tout le nom du fichier avi , yatil une solution pour eviter sa .? tab ?

  • # il manque ./ devant le nom du répertoire

    Posté par  . Évalué à -3.

    il manque ./ devant le nom du répertoire

  • # des espaces ou des caracteres speciaux

    Posté par  . Évalué à 5.

    normalement si tu fais

    mv \[www TAB TAB silicon TAB TAB

    ca devrait mettre les \ pour proteger les espaces là ou il faut et te permettre de faire la copie.
    car on va supposer qu'il ne veut pas faire le deplacement car il ne trouve pas la source, ou la destination.

    ca peut aussi etre un probleme de droit.
    sur la source (ce n'est pas toi qui a cree le fichier, tu ne peux alors pas le supprimer (donc le deplacer)
    sur la destination (ce n'est pas toi qui a créé le dossier, tu ne peux alors pas ecrire dedans)

  • # zsh rules

    Posté par  . Évalué à 2.

    et cest vraiment pas plus rapide decrire tout le nom du fichier avi , yatil une solution pour eviter sa .? tab ?

    Bash est un peu rudimentaire pour ça, zsh est très fort, par exemple, tu aurais pu faire :

    mv 102 presser tab, et il aurait trouvé le fichier, si plusieurs fichiers correspondent il peut les faire défiler, ou mettre un menu. Bref, c'est cool.

    Avec bash, une solution, c'est de faire mv *102* et presser tab (et il remplace les étoiles parce ce qu'il faut)

    je deplace lepisode du dossier telechargement au dossier silicon valey placer aussi dans le dossier telechargement
    mais la commande ne marche pas… pk ?

    Il faut voir le message d'erreur qu'il te donne pour savoir, il y a plusieurs raisons possibles, la plus probable étant les caractères spéciaux pour le shell comme évoqué plus haut.

  • # Échappement des espaces

    Posté par  . Évalué à 5. Dernière modification le 20 octobre 2016 à 13:55.

    Je pense ta commande n’aboutit pas car tu n’as pas « échappé » les espaces…

    Si tu veux déplacer un fichier dont le nom contient des espaces vers un répertoire dont le nom contient des espaces il faut éviter que le shell interprète les espaces comme séparateur d’arguments :

    soit avec des quotes (ici j’utilise des doubles mais des simples feraient l’affaire…)

    mv "nom fichier avec espace.truc" "dossier de destination"

    soit en échappant les espaces une par une :

    mv nom\ fichier\ avec\ espace.truc dossier\ de\ destination

    Si tu utilises la complétion avec la touche TAB tu verras qu’il ajoute ces \ automatiquement.

    la commande ne marche pas…

    Précise quel message d’erreur tu as (ou quel comportement) parce que : « ça marche pas » ça nous aide pas des masses ;)

  • # probleme joker *

    Posté par  . Évalué à 1.

    alors voila ce que je tapes, cest ce que le cour indique

    ~$ cd
    valarr@valarr-MS-7599:~$ ls
    animaux examples.desktop Modèles Téléchargements
    animaux2 fbidon mondossier tests
    Bureau fcopie Musique Vidéos
    Documents Images Public
    valarr@valarr-MS-7599:~$ cp .jpg mondossier/
    cp: impossible d'évaluer '
    .jpg': Aucun fichier ou dossier de ce type

    en gros cest pour envoyer tout les fichier jpg dans mondossier

    sauf que je me trouve dans HOMe quand je tape cette commande , et je n'ai aucun fichier jpg dans HOMe mais dans Images, et j'ai essayer la meme commande mais en etant dans le dossier Images mais sa na pas marcher non plus,

    valarr@valarr-MS-7599:~/Images$ cp *.jpg mondossier/
    cp: la cible 'mondossier/' n'est pas un répertoire

    j'ai aussi essayer la commande cp [www* mondossier/ ( [www est le debut de pas mal de fichier que jai telecharger)
    donc dans homes je tape :
    valarr@valarr-MS-7599:~$ cd [www* mondossier/
    bash: cd: [www*: Aucun fichier ou dossier de ce type

    • [^] # Re: probleme joker *

      Posté par  . Évalué à 2. Dernière modification le 20 octobre 2016 à 16:44.

      valarr@valarr-MS-7599:~$ cp *.jpg mondossier/
      cp: impossible d'évaluer '*.jpg': Aucun fichier ou dossier de ce type
      

      en gros cest pour envoyer tout les fichier jpg dans mondossier

      sauf que je me trouve dans HOMe quand je tape cette commande , et je n'ai aucun fichier jpg dans HOMe mais dans Images,

      Donc c’est normal que ça donne : '*.jpg': Aucun fichier ou dossier de ce type

      et j'ai essayer la meme commande mais en etant dans le dossier Images mais sa na pas marcher non plus,

      valarr@valarr-MS-7599:~/Images$ cp *.jpg mondossier/
      cp: la cible 'mondossier/' n'est pas un répertoire
      

      Et c’est tout aussi normal là encore :) Vu que maintenant c’est qu’il n’y a pas de dossier 'mondossier' dans le dossier 'Images' : 'mondossier/' n'est pas un répertoire

      Tu peux faire :

      valarr@valarr-MS-7599:~/Images$ cp *.jpg ../mondossier/

      '..' désigne le dossier parent (donc /home/valarr dans ce cas), ça copiera tous les fichiers .jpg se trouvant dans 'Images' (mais pas ses sous-dossiers) dans le dossier $HOME/mondossier (~/mondossier)

      Si maintenant tu fais :

      valarr@valarr-MS-7599:~$ cp */*.jpg mondossier/

      Là ça va copier tous les fichiers .jpg se trouvant dans tous les dossiers de $HOME (dont le dossier 'Images'…) toujours sans descendre dans les sous dossiers, par exemple un fichier ~/Images/toto/fichier.jpg ne serait pas copié.

      Pour faire ce que tu semble vouloir faire, c’est à dire copier tous les fichiers avec l’extension .jpg se trouvant dans l’arborescence de ton répertoire personnel (/home/valarr) dans /home/valarr/mondossier il faudrait plutôt utiliser la commande find :

      valarr@valarr-MS-7599:~$ find . -name '*.jpg' -exec cp -a {} mondossier \;
      

      PS : Fait attention à ton orthographe, plus il y a de fautes et moins tu as de chance que des gens t’aident…

      • [^] # Re: probleme joker *

        Posté par  . Évalué à 2.

        Petite erreur de ma part :

        Là ça va copier tous les fichiers .jpg se trouvant dans tous les dossiers de $HOME (dont le dossier 'Images'…) toujours sans descendre dans les sous dossiers, par exemple un fichier ~/Images/toto/fichier.jpg ne serait pas copié.

        En fait si… mais je te recommande quand même d’utiliser find

    • [^] # Re: probleme joker *

      Posté par  . Évalué à 2.

      valarr@valarr-MS-7599:~$ cd [www* mondossier/

      Tu mélanges un peu tout… Bon déjà tu as écris 'cd' au lieu de 'cp' mais passons… (ça change rien à ton problème)

      Il faudrait que tu comprennes la notions de caractère spéciaux et d’échappement de ceux-ci.

      $ ls *pasbien*
      [www.Cpasbien.me] Red.Dawn.2012.VOSTFR.DVDRiP.XviD-NIKOo.avi
      

      Les fichiers tipiakés c’est pas bien !

      Maintenant voilà ce qui apparaît si je tape ls [ puis que j’appuie sur la touche Tabulation :

      $ ls \[www.Cpasbien.me\]\ Red.Dawn.2012.VOSTFR.DVDRiP.XviD-NIKOo.avi 
      

      Le shell a complété ma commande (c’est le seul fichier qui correspond à ce motif, qui commence par '['), et comme tu peux voir, il a utilisé le caractère d’échappement \ pour que les espaces qui les suivent soient bien considérées comme faisant partie du nom du fichier et pas comme étant une séparation entre deux noms de fichier ! Les crochets sont également échappés car ils ont aussi une signification spéciale pour le shell.

      On arrive au même résultat en utilisant des guillemets :

      Si je tape ls "[ et que j’appuie sur tabulation le shell complète ma commande ainsi :

      $ ls "[www.Cpasbien.me] Red.Dawn.2012.VOSTFR.DVDRiP.XviD-NIKOo.avi"

  • # probleme joker

    Posté par  . Évalué à 1.

    dans les commande que jai montrer jai bien mis letoile ***la ou il fallait, mais elle ne saffiche pas sur le forum ..

  • # probleme joker

    Posté par  . Évalué à -1.

    sa me rend vraiment fou de bloquer ladessu, alors que sa doit etre bidon, sa rend DINGUE ^

  • # resolu

    Posté par  . Évalué à 1. Dernière modification le 20 octobre 2016 à 15:48.

    cest bon en copian des image dans le dossier home

    la commande a marcher et jai pu les envoyer dans mondossier

    mais je ne sais toujour pas comment avec un joker copier les image du dossier images dans le dossier mondossier

    quelque chose mechape

    jessai comme ca

    ~/Images$ mv *.jpg /home/mondossier
    mv: la cible '/home/mondossier' n'est pas un répertoire

    ca ne marche pas

    jespere que vous arriverez a me comprendre jai ete un peu confus je l'admet…

    • [^] # Re: resolu

      Posté par  . Évalué à 2.

      $ mv *.jpg /home/valarr/mondossier

      ou encore :

      $ mv *.jpg ~/mondossier

      qui revient au même si tant est que tu sois l’utilisateur 'valarr' et que celui-ci ait comme HOMEDIR /home/valarr (c’est très habituel comme configuration, c’est probablement le cas sur ton système…)

  • # mdr recolu

    Posté par  . Évalué à 1.

    je me trompais dans le chemin
    comment on ecrit home , on ne peut qutiliser ~ ?

    sa a marcher avec cette comande

    sudo mv *.jpg ~/mondossier/

    • [^] # Re: mdr recolu

      Posté par  . Évalué à 2. Dernière modification le 20 octobre 2016 à 17:27.

      ~ vaut la valeur de la variable $HOME de ton profile :

      stef@medusa:~$ echo ~
      /home/stef
      stef@medusa:~$ echo $HOME
      /home/stef
      

      Tu peux voir ici que ~ est également un caractère spécial pour le shell, si tu avais ce caractère dans un nom de fichier il faudrait également l’échapper :

      (la commande touch crée un fichier vide si celui-ci n’existe pas)

      stef@medusa:/tmp$ touch 't ~'
      stef@medusa:/tmp$ echo t ~
      t /home/stef
      stef@medusa:/tmp$ echo t\ \~
      t ~
      stef@medusa:/tmp$ echo 't ~'
      t ~
      stef@medusa:/tmp$ rm t ~
      rm: impossible de supprimer « t »: Aucun fichier ou dossier de ce type
      rm: impossible de supprimer « /home/stef »: est un dossier
      stef@medusa:/tmp$ rm 't ~'
      stef@medusa:/tmp$
      

      Tu peux voir avec la première commande rm qu’il essaye de supprimer un fichier nommé 't' et un fichier nommé '/home/stef', d’une part parce que l’espace n’est pas échappée, donc il pense que ce sont deux fichiers distincts, d’autre part il interprète le '~' en le transformant en '/home/stef'…

      Avec les guillemets (ou bien les anti-slashes : t\ \~ pas de problème, le shell comprend qu’on lui indique un seul fichier, nommé 't ~'.

      Bon… en vrai $ echo t\ ~ devrait fonctionner aussi mais bon là ça va compliquer :)

    • [^] # Re: mdr recolu

      Posté par  . Évalué à 1. Dernière modification le 20 octobre 2016 à 17:36.

      comment on ecrit home , on ne peut qutiliser ~ ?

      C'est le plus simple. Sinon tu peux utiliser $HOME ou bien /home/ton_nom_d_utilisateur/.

      sa a marcher avec cette comande
      sudo mv *.jpg ~/mondossier/

      Ça veut dire que c'est un problème de droit.

      En gros, il y a trois droits différent :
      - lire (r comme read)
      - écrire (w comme write)
      - executer (x comme execute) (pour les répertoire ça veut dire "traverser")

      pour trois type de personnes :
      - le propriétaire du fichier (u comme user)
      - les membres du groupe du fichier (g comme group)
      - les autres (o comme other)

      La commande ls -ld ~/mondossier te donnera les droits sur ton dossier, ça pourra ressembler à ça :

      ls -ld ~/mondossier
      drwxrwx--- 2 utilisateur groupe 4096 oct.  20 17:25 mondossier
      
      

      drwxr-x--- veut dire :
      d c'est un répertoire
      rwx le propriétaire a le droit de lire, écrire, traverser
      r-x le groupe a le droit de lire et traverser
      --- ceux qui sont ni le propriétaire, ni dans le groupe on le droit de rien.

      Très vraissemblablement, mondossier est un point de montage, il appartient à root (?) et c'est pour ça que tu n'a pas le droit d'écrire dedans. Tu peux corriger avec sudo chown -R utilisateur ~/mondossier (chown comme change owner, -R pour appliquer l'opération à tous les fichiers dans le répertoire, récursivement).

      L'autre truc possible, c'est que les permission soit pas bonne, dans ce cas, tu peux corriger avec par exemple chmod -R u+rwx ~/mondossier (donner le droit d'écriture à l'utilisateur sur tous les fichiers du répertoire).

      Ça fait un peu beaucoup d'un coup, mais on s'y fait vite, et c'est super puissant :-)

      • [^] # Re: mdr recolu

        Posté par  . Évalué à 2. Dernière modification le 20 octobre 2016 à 17:51.

        comment on ecrit home , on ne peut qutiliser ~ ?

        C'est le plus simple. Sinon tu peux utiliser $HOME ou bien /home/ton_nom_d_utilisateur/.

        C’est tout à fait ça.

        Par contre je ne pense pas qu’il ait un problème de droit… Déjà, il est dans son $HOME… et puis j’ai pas vu un message d’erreur type "Access denied"… La commande « qui marche » c’est plus probablement parce qu’il se trouve dans son répertoire Images.

        Ça fait un peu beaucoup d'un coup

        Oui :) Je pense qu’avant de se pencher sur les droits UNIX il devrait déjà mieux maîtriser la notion d’arborescence, de chemin relatif/absolu et de caractères spéciaux du shell…

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.