Équipe SCP avec des espaces et des virgules

Toute la journée, il y avait des problèmes avec cette seule équipe scp. Je cherchais et j'ai demandé aux gens, etc.

$ scp -P portNumber /ReferenceFiles/CompanyA,The/Some\ DirectoryWithA\ Space/Game user@server:/ReferenceFiles/CompanyA/Game

J'ai essayé de créer un fichier dans le répertoire, mais cela n'existe pas, et si j'essaie d'exécuter la commande. scp Dans le répertoire, je vais obtenir un «fichier non régulier».

J'ai essayé d'utiliser deux volets inverse pour des espaces à l'aide de citations simples et doubles. Je suis vraiment nouveau à cela et je m'attendais à le savoir quand on m'a dit que je ferais surtout PHP et Flash ...

Toute aide ou suggestions sont les bienvenues.

remercier
Invité:

Alice

Confirmation de:

Les symboles d'échappement standard de la coquille doivent suffire, ajoutez donc une virgule:

scp -P Numéro de port / Fichiers de référence / KompanyA \, The / Some \ DirectoryWithA \ Space / Jeux d'utilisateur @ server: / ReferenceFiles / CompanyA / Game

Emilie

Confirmation de:

L'un des moyens les plus faciles de contourner le dépistage des caractères sur la ligne de commande (Si c'est la cause du problème) - Utilisez l'achèvement de l'onglet pour lui permettre de remplir des caractères «inconfortables»; En fonction de la compléquation de votre catalogue / ReferenceFiles, Vous pouvez faire quelque chose comme

  scp -P portNumber /Ref<tab>CompanyA<tab>Some<tab>Game/file user@server:...

Alternativement, vous pouvez utiliser? Au lieu d'un symbole, à condition qu'il y ait trop de noms de fichiers conflictuels / Directeurs:

 scp -P portNumber /ReferenceFiles/CompanyA,The/Some?DirectoryWithA?Space/Game/file ...

Pour les répertoires, vous devez utiliser le paramètre -r pour scp (En raison de son absence, vous avez une erreur "pas un fichier ordinaire").

Enfin, peut-il être que la destination sur le serveur n'existe pas dans la forme dans laquelle elle a été introduite et quelle est la source d'erreur (pas le fichier source)?
</tab></tab></tab>

Christine

Confirmation de:

Vous devez utiliser les deux \ Blindage

et

devis :

scp -o port=portNumber "/ReferenceFiles/CompanyA,The/Some\ DirectoryWithA\ Space/Game" user@server:/ReferenceFiles/CompanyA/Game

Ne demandez pas pourquoi, mais ça marche.

Dominique

Confirmation de:

Votre équipe travaille pour moi; C'est vraiment une équipe qui vous a donné des problèmes et de ne pas y aller de différentes manières?

scp

aucun problème avec les noms de fichiers locaux, mais

à distance

Les noms de fichier sont élargis par l'expansion de la coque sur le côté distant. Donc, si vous composez

scp

Dans la coquille, vous devez entrer les noms de fichiers distants deux fois entre guillemets. Manière facile, si le nom ne contient pas de guillemets simples, - Protéger les caractères spéciaux avec

\

puis conclure un argument en citations simples, comme dans

scp -P portNumber user@server:'/ReferenceFiles/CompanyA,The/Some\ DirectoryWithA\ Space/Game' /ReferenceFiles/CompanyA/Game

La même chose s'applique

rsync

, D'ailleurs.

Hannah

Confirmation de:

En admettant que «Game» - Ceci est un répertoire pour copier tous les fichiers de ce répertoire à l'aide de scp, Il suffit d'utiliser le paramètre -r (Récursif) Avec un catalogue comme cible. De plus, l'objectif est le nom de l'élément parent Game sur la télécommande, vous pouvez donc supprimer «Game» De l'argument à distance. Vous devez également supprimer la virgule.

Par exemple.

$ scp -r -P portNumber /ReferenceFiles/CompanyA\,The/Some\ DirectoryWithA\ Space/Game user@server:/ReferenceFiles/CompanyA

Pour répondre aux questions, connectez-vous ou registre