web-dev-qa-db-fra.com

Copie d'un lecteur de partage de montage dans un dossier local via un script

C’est la première fois que j’essaie de travailler avec des scripts Linux, alors c’est peut-être une évidence.

Voici ce que j'essaie de faire:

  1. Supprimer tout le contenu du dossier local - rm/home/utilisateur/Documents/Exercice /
  2. Copier des fichiers depuis un lecteur réseau Windows partagé - cp smb: // serveur/arc/Exercice% 20Files/Word /

Donc, de ma compréhension, ma commande devrait ressembler à ceci

  rm /home/user/Documents/Exercise/
  cp smb://server/arc/Exercise%20Files/Word/ /home/user/Documents/Exercise/

Mais à chaque fois que j'essaie d'exécuter l'une des commandes ci-dessus, l'erreur suivante apparaît:

  "rm: cannot remove `/home/user/Documents/Exercise/': Is a directory"
  "cp: cannot stat `smb://server/arc/Exercise%20Files/Word/': No such file or directory"

Qu'est-ce que je fais mal?

Sincères amitiés,

M

MODIFIER:

J'ai maintenant la fonction rm qui fonctionne mais je suis toujours troublée par la fonction cp. Pour vous assurer qu'il ne s'agit pas d'un problème d'espaces dans les noms de dossier, j'ai renommé les dossiers du partage. Le contenu de ce dossier est alors le suivant: //server/Arc/ExerciseFiles/*

J'ai monté le dossier donc je (suppose) plus besoin du smb://. Il se lit actuellement: cp -rfv /home/user/Documents/ExerciseShare/ExerciseFiles/Word/ /home/user/Documents/Exercise/

M

3
Mitchell

Non, vos commandes devraient ressembler à ce qui suit

  rm -rfv /home/user/Documents/Exercise/*

car le dossier Exercise peut avoir des sous-répertoires

et en cas de partage de samba, vous devez d'abord le monter localement

c'est à dire.

mount -t smbfs smb://"server/arc/Exercise Files/Word/" /mnt 

et ensuite

 cp /mnt /home/user/Documents/Exercise/
3
Registered User

Vous devez utiliser le drapeau "moins r" ou -r

rm -r

et

cp -r

Cela va copier ou supprimer de manière récursive dans des dossiers ou des fichiers au sein de fichiers.

2
noel