L'enregistrement d'un nom de fichier en tant que variable
J'ai besoin d'un moyen pour enregistrer le nom d'un fichier dans une variable, de sorte que lorsque je supprime ce fichier, je peux créer un nouveau fichier avec le même nom que l'original. Comment puis-je le faire?
par exemple, je prends dans un fichier et l'enregistrer comme var1 et l'autre comme var2 à l'aide de
file=$var1
file=$var2
plus loin dans mon code, j'ai besoin de supprimer var2 et de créer un lien vers var1 avec le même nom que l'original, var2. La commande:
rm var2
ln var1 var2
crée un message d'erreur
Je pense que j'ai besoin de créer une variable temporaire qui retient juste le nom du fichier var2, mais je ne suis pas sûr de la façon de le faire. Des idées? Merci!
- Cette question (et vos deux autres récents) montrent clairement que vous avez vraiment besoin pour obtenir un shell script du livre et de ne pas essayer de jouer à "devine la syntaxe" ou "demandez DONC quand cela échoue." À mon humble avis, vous aidant ainsi à vous en vous donnant les réponses vont vraiment être un mauvais service à vous.
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez juste besoin d'un signe"$":
Dans votre cas:
Le shell que vous utilisez? Quel OS?
Avec Linux, BASH, et il serait:
Mais dans Mac OS X
ln
a une syntaxe différente et vous devez passer des arguments dansln
:Edit: Aussi, votre problème peut être que vous utilisez le chemin d'accès au fichier contenant des espaces, si bash montre
"no such file or directory"
erreurs.Il ne peut pas trouver le fichier en raison de l'
rm
's de la syntaxe. Par exemple:Ce script n'exécuter une commande
"rm long named file"
, qui, à son tour, supprime des fichiers de trois -long
,named
etfile
.Alors que ferait la chose pour vous:
rm "$var1"
etln "$var1" "$var2"
à la place.$file
est une autre variable que vous avez défini précédemment. Si vous déclarez d'abord$file
et$another
variables, et de déclarer ensuite$var1
et$var2
et de les rendre égaux$file
et$another
respectivement, ça n'a pas de sens. Comment stocker des fichiers entrants (que vous devezrm
etln
plus tard), comme un nom de fichier/chemin? Dans quelles variables? Comment déclarer ces variables?