webdav
Linux,  OS Tools

Accessing a webdav drive from Linux shell

Table of Contents


Option 1: Connect on an interactive session

Pre-requisites

  • You need to retrieve the webdav URL from your provider. Sample:
https://testportal.com/remote.php/dav/files/your_username/
  • Install command line tool “cadaver” (installation method depends on your Linux distribution)

Connecting via “cadaver”

cadaver https://testportal.com/remote.php/dav/files/your_username/

You will be prompted to provide your password. Once logged in, you will be connected to a webdav shell.

Available commands

ls [path]
    List contents of current [or other] collection 
cd path
    Change to specified collection 
pwd
    Display name of current collection 
put local [remote]
    Upload local file 
get remote [local]
    Download remote resource 
mget remote...
    Download many remote resources 
mput local...
    Upload many local files 
edit resource
    Edit given resource 
less remote...
    Display remote resource through pager 
mkcol remote...
    Create remote collection(s) 
cat remote...
    Display remote resource(s) 
delete remote...
    Delete non-collection resource(s) 
rmcol remote...
    Delete remote collections and ALL contents 
copy source... dest
    Copy resource(s) from source to dest 
move source... dest
    Move resource(s) from source to dest 
lock resource
    Lock given resource 
unlock resource
    Unlock given resource 
discover resource
    Display lock information for resource 
steal resource
    Steal lock token for resource 
showlocks
    Display list of owned locks 
propnames res
    Names of properties defined on resource 
chexec [+|-] remote
    Change isexecutable property of resource 
propget res [propname]
    Retrieve properties of resource 
propset res propname value
    Set property on resource 
set [option] [value]
    Set an option, or display options 
open URL
    Open connection to given URL 
close
    Close current connection 
quit
    Exit program 
unset [option] [value]
    Unsets or clears value from option. 
lcd [directory]
    Change local working directory 
lls [options]
    Display local directory listing 
lpwd
    Print local working directory 
logout
    Logout of authentication session 
help [command]
    Display help message

Option #2: Mount the remote webdav as a local folder

I find this method much more convenient.

  • Install davfs file system drivers
    • apt-get install davfs2 or yum install davfs2
  • Add your local user to “davfs” group
    • usermod -aG davfs2 <username>
  • Create a local folder to use as mount point
    • mkdir /yourmountpoint
  • Create a folder to store your users’s davfs settings
    • mkdir ~/.davfs2
  • Copy davfs global settings to your user’s folder
    • cp /etc/davfs2/secrets ~/.davfs2/secrets
  • Add an entry to /etc/fstab:
https://testportal.com/remote.php/dav/files/your_username/ /yourmountpoint davfs user,rw,noauto 0 0
  • Mount the share
    • mount /yourmountpoint