X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/9c77ddf65fc39fdb5d35ed6b06c3817fc9f56982..8154b6022bd42b4aba03fc9adcbabd4f588b6575:/doc/psftp.but diff --git a/doc/psftp.but b/doc/psftp.but index d9c070c1..f0bf08e1 100644 --- a/doc/psftp.but +++ b/doc/psftp.but @@ -82,15 +82,16 @@ and then you could run the script by typing When you run a batch script in this way, PSFTP will abort the script if any command fails to complete successfully. To change this -behaviour, you can use the \c{-be} option (\k{psftp-option-be}). +behaviour, you can add the \c{-be} option (\k{psftp-option-be}). \S{psftp-option-bc} \c{-bc}: display batch commands as they are run The \c{-bc} option alters what PSFTP displays while processing a -batch script. With the \c{-bc} option, PSFTP will display prompts -and commands just as if the commands had been typed at the keyboard. -So instead of seeing this: +batch script specified with \c{-b}. With the \c{-bc} option, PSFTP +will display prompts and commands just as if the commands had been +typed at the keyboard. So instead of seeing this: +\c C:\>psftp fred@hostname -b batchfile \c Sent username "fred" \c Remote working directory is /home/fred \c Listing directory /home/fred/lib @@ -102,6 +103,7 @@ So instead of seeing this: you might see this: +\c C:\>psftp fred@hostname -bc -b batchfile \c Sent username "fred" \c Remote working directory is /home/fred \c psftp> dir lib @@ -115,8 +117,8 @@ you might see this: \S{psftp-option-be} \c{-be}: continue batch processing on errors -When running a batch file, this option causes PSFTP to continue -processing even if a command fails to complete successfully. +When running a batch file, this additional option causes PSFTP to +continue processing even if a command fails to complete successfully. You might want this to happen if you wanted to delete a file and didn't care if it was already not present, for example. @@ -173,6 +175,48 @@ file whose name is \c{a file with "quotes" in it}. which passes its command line straight to Windows without splitting it up into words at all. See \k{psftp-cmd-pling}.) +\S{psftp-wildcards} Wildcards in PSFTP + +Several commands in PSFTP support \q{wildcards} to select multiple +files. + +For \e{local} file specifications (such as the first argument to +\c{put}), wildcard rules for the local operating system are used. For +instance, PSFTP running on Windows might require the use of \c{*.*} +where PSFTP on Unix would need \c{*}. + +For \e{remote} file specifications (such as the first argument to +\c{get}), PSFTP uses a standard wildcard syntax (similar to POSIX +wildcards): + +\b \c{*} matches any sequence of characters (including a zero-length +sequence). + +\b \c{?} matches exactly one character. + +\b \c{[abc]} matches exactly one character which can be \cw{a}, +\cw{b}, or \cw{c}. + +\lcont{ + +\c{[a-z]} matches any character in the range \cw{a} to \cw{z}. + +\c{[^abc]} matches a single character that is \e{not} \cw{a}, \cw{b}, +or \cw{c}. + +Special cases: \c{[-a]} matches a literal hyphen (\cw{-}) or \cw{a}; +\c{[^-a]} matches all other characters. \c{[a^]} matches a literal +caret (\cw{^}) or \cw{a}. + +} + +\b \c{\\} (backslash) before any of the above characters (or itself) +removes that character's special meaning. + +A leading period (\cw{.}) on a filename is not treated specially, +unlike in some Unix contexts; \c{get *} will fetch all files, whether +or not they start with a leading period. + \S{psftp-cmd-open} The \c{open} command: start a session If you started PSFTP by double-clicking in the GUI, or just by @@ -191,12 +235,19 @@ not opened successfully, PSFTP will terminate immediately. \S{psftp-cmd-quit} The \c{quit} command: end your session When you have finished your session, type the command \c{quit} to -terminate PSFTP and return to the command line (or just close the -PSFTP console window if you started it from the GUI). +close the connection, terminate PSFTP and return to the command line +(or just close the PSFTP console window if you started it from the +GUI). You can also use the \c{bye} and \c{exit} commands, which have exactly the same effect. +\S{psftp-cmd-close} The \c{close} command: close your connection + +If you just want to close the network connection but keep PSFTP +running, you can use the \c{close} command. You can then use the +\c{open} command to open a new connection. + \S{psftp-cmd-help} The \c{help} command: get quick online help If you type \c{help}, PSFTP will give a short list of the available @@ -309,6 +360,9 @@ that, and a second argument will be treated as an alternative name under which to store the retrieved file), or a wildcard expression matching more than one file. +The \c{-r} and \c{--} options from \c{get} are also available with +\c{mget}. + \c{mput} is similar to \c{put}, with the same differences. \S{psftp-cmd-regetput} The \c{reget} and \c{reput} commands: @@ -326,6 +380,13 @@ syntax of \c{get} and \c{put}: \c reget myfile.dat \c reget myfile.dat newname.dat +\c reget -r mydir + +These commands are intended mainly for resuming interrupted transfers. +They assume that the remote file or directory structure has not +changed in any way; if there have been changes, you may end up with +corrupted files. In particular, the \c{-r} option will not pick up +changes to files or directories already transferred in full. \S{psftp-cmd-dir} The \c{dir} command: list remote files @@ -338,22 +399,28 @@ You can also list the contents of a different directory by typing \c dir /home/fred \c dir sources +And you can list a subset of the contents of a directory by +providing a wildcard: + +\c dir /home/fred/*.txt +\c dir sources/*.c + The \c{ls} command works exactly the same way as \c{dir}. \S{psftp-cmd-chmod} The \c{chmod} command: change permissions on remote files -PSFTP allows you to modify the file permissions on files on the -server. You do this using the \c{chmod} command, which works very -much like the Unix \c{chmod} command. +PSFTP allows you to modify the file permissions on files and +directories on the server. You do this using the \c{chmod} command, +which works very much like the Unix \c{chmod} command. The basic syntax is \c{chmod modes file}, where \c{modes} represents a modification to the file permissions, and \c{file} is the filename -to modify. For example: +to modify. You can specify multiple files or wildcards. For example: \c chmod go-rwx,u+w privatefile -\c chmod a+r publicfile -\c chmod 640 groupfile +\c chmod a+r public* +\c chmod 640 groupfile1 groupfile2 The \c{modes} parameter can be a set of octal digits in the Unix style. (If you don't know what this means, you probably don't want @@ -380,7 +447,8 @@ permissions for members of the owning group and everybody else (so the only permissions left are the ones for the file owner). \c{u+w} adds write permission for the file owner. -\b The second example: \c{a+r} adds read permission for everybody. +\b The second example: \c{a+r} adds read permission for everybody to +all files and directories starting with \q{public}. In addition to all this, there are a few extra special cases for Unix systems. On non-Unix systems these are unlikely to be useful: @@ -402,9 +470,18 @@ normally only the owner of the \e{directory} would be allowed to). \S{psftp-cmd-del} The \c{del} command: delete remote files -To delete a file on the server, type \c{del} and then the filename: +To delete a file on the server, type \c{del} and then the filename +or filenames: \c del oldfile.dat +\c del file1.txt file2.txt +\c del *.o + +Files will be deleted without further prompting, even if multiple files +are specified. + +\c{del} will only delete files. You cannot use it to delete +directories; use \c{rmdir} for that. The \c{rm} command works exactly the same way as \c{del}. @@ -415,26 +492,47 @@ directory name: \c mkdir newstuff +You can specify multiple directories to create at once: + +\c mkdir dir1 dir2 dir3 + \S{psftp-cmd-rmdir} The \c{rmdir} command: remove remote directories To remove a directory on the server, type \c{rmdir} and then the -directory name: +directory name or names: \c rmdir oldstuff +\c rmdir *.old ancient + +Directories will be deleted without further prompting, even if +multiple directories are specified. Most SFTP servers will probably refuse to remove a directory if the directory has anything in it, so you will need to delete the contents first. -\S{psftp-cmd-ren} The \c{ren} command: rename remote files +\S{psftp-cmd-mv} The \c{mv} command: move and rename remote files + +To rename a single file on the server, type \c{mv}, then the current +file name, and then the new file name: + +\c mv oldfile newname + +You can also move the file into a different directory and change the +name: + +\c mv oldfile dir/newname -To rename a file on the server, type \c{ren}, then the current file -name, and then the new file name: +To move one or more files into an existing subdirectory, specify the +files (using wildcards if desired), and then the destination +directory: -\c ren oldfile newname +\c mv file dir +\c mv file1 dir1/file2 dir2 +\c mv *.c *.h .. -The \c{rename} and \c{mv} commands work exactly the same way as -\c{ren}. +The \c{rename} and \c{ren} commands work exactly the same way as +\c{mv}. \S{psftp-cmd-pling} The \c{!} command: run a local Windows command