Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


put fails with filenames containing glob patterns #812

legrostdg opened this Issue · 2 comments

2 participants


Command line:

$ touch ~/'test1[foo].txt'
$ touch ~/'test2.txt'

Python shell:

>>> from fabric.api import put
>>> put('~/test1\[foo\].txt', '/tmp')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/fabric/", line 465, in host_prompting_wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/fabric/", line 369, in put
    raise ValueError(err)
ValueError: '/home/myuser/test1\[foo\].txt' is not a valid local path or glob.
>>> put('~/test2.txt', '/tmp')
[] put: /home/myuser/test2.txt -> /tmp/test2.txt

put/get support glob patterns via the stdlib's fnmatch module, which is why this is happening. That's a feature; unfortunately it doesn't seem fnmatch allows for escaping so there's no great workaround at the moment. Sorry!

I'd probably accept a patch making the globbing optional (but on by default, i.e. backwards compat) which would help in this type of situation. Will leave this open so if I have time I am reminded to do it myself.


See #869 yay

@bitprophet bitprophet closed this
@bitprophet bitprophet referenced this issue from a commit
@bitprophet bitprophet Remove env var checking behavior for use_glob.
There was no env var and I actually don't think it makes
sense for this to be globally true/false.

Re #869, #812
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.