GNU/Linux >> Tutoriels Linux >  >> Linux

Problème dans le script avec des espaces dans le nom de fichier ?

J'ai un script qui scp est un fichier de l'hôte distant vers le local. Parfois, les noms de fichiers contiennent des espaces. scp n'aime pas les espaces dans ses noms de fichiers. Pour une raison quelconque, mes tentatives de gestion des espaces n'ont pas abouti au bon chemin scp.

Code :

PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg
scp $PATH [email protected]:/Users/Me/Desktop

Résultats en

Cannot find directory: var/root/Documents/MyFile
Cannot find directory: OG-v1.2.3.pkg

Mettre PATH entre guillemets "$PATH" donne la même erreur.

Échanger les espaces pour les espaces échappés ne fonctionne pas non plus, bien que pour autant que je sache, cela devrait :

ESC_PATH=${PATH/' '/' '}

bien que l'impression du chemin échappé montre que la modification a fonctionné :

echo $ESC_PATH
> /var/root/Documents/MyFile OG-v1.2.3.pkg

Réponse acceptée :

Vous devez citer à la fois la déclaration et l'utilisation

path="/var/root/Documents/MyFile OG-v1.2.3.pkg"
scp "$path" [email protected]:/Users/Me/Desktop

Si vous ne citez pas le premier, $path ne contiendra que la première partie. Si vous ne citez pas le second, scp traitera chaque partie séparée par un espace comme un argument.

(J'ai changé $PATH vers $path car $PATH est une variable réservée importante et vous ne devez pas l'utiliser à des fins générales.)


Linux
  1. Enregistrez votre terminal avec script et scriptreplay

  2. Ssh - Script pour automatiser Scp en réseau ?

  3. Pourquoi je ne peux pas échapper aux espaces sur un script bash ??

  4. nom de base avec des espaces dans un script bash ?

  5. scp de Linux distant vers Windows local avec des espaces dans le chemin local

Automatisez le traitement des images avec ce script Bash

Comment écrire un script bash avec des exemples

Comment puis-je échapper aux espaces dans les chemins pour Scp sous Linux ?

Comment supprimer les espaces des noms de fichiers sous Linux

Répertoire de changement de script shell avec variable

Créer des modèles avec Linux dans un script Shell ?