Comment utiliser la commande cp dans le script bash pour copier des fichiers contenant des espaces et des caractères $? [dupliquer]

Cette question a déjà des réponses ici :

Commentaires

  • La réponse mentionne lutilisation de guillemets pour la variable que jutilise déjà et elle ' ne fonctionne pas.
  • voir le " Comment traiter une liste de noms de fichiers? " section

Answer

Le glob doit être laissé sans guillemets pour quil être traité comme un glob. Les variables doivent être citées:

cp -- "$TRX_SOURCE_PATH"/*TRX* "$DEST_PATH" 

Commentaires

  • Merci beaucoup. Celui-ci a fonctionné. Cependant, jai utilisé uniquement cp "$TRX_SOURCE_PATH"/*TRX* "$DEST_PATH". Pourriez-vous expliquer la signification de -- ici?
  • Vous devez chercher sur Google et comprendre comment les guillemets permettent à un caractère spécial dêtre spécial ou non. Il est étouffant car il analyse vos caractères comme sils avaient une signification particulière et nétaient pas simplement des caractères dans la chaîne de nom de votre fichier.
  • @St é phane Chazelas Quoi est -- pour?

Réponse

#!/bin/bash TRX_SOURCE_PATH="/src/path" DEST_PATH="/your/dest" cp $TRX_SOURCE_PATH/Bharti\ Blocked\ TRX\ Report\ \ Morning\$*@* $DEST_PATH 

devrait fonctionner

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *