FTP has quite a few commands. While the client maps some of these to a more userfriendly text interface.
For example, if you use ftp -v
(depending on your ftp
client, the one I use needs ftp -vd
), you'll notice something like the following (--->
shows what is sent to the server):
$ ftp -vd ftp.debian.org
Connected to ftp.debian.org.
220 ftp.debian.org FTP server
Name (ftp.debian.org:user): anonymous
---> USER anonymous
331 Please specify the password.
Password:
---> PASS XXXX
230 Login successful.
[...]
ftp> cd debian
---> CWD debian
250 Directory successfully changed.
That is, your convenient cd
calls get mapped to CWD
commands.
Some FTP clients allow you to send verbatim FTP commands to the server; in yours it is done with literal
(my ftp
uses quote
):
ftp> quote CWD ..
---> CWD ..
250 Directory successfully changed.
Useful? Indeed, it allows you to interact with your FTP server in ways the client doesn't know about. Maybe your client doesn't implement SITE
commands, then you could still use literal SITE [...]
to have the server do what you want. Things like FXP can be done with any FTP client using handcrafted commands, too (albeit quite inconveniently). Also, for experimenting with FTP, it's more comfortable to have the login process handled by the FTP client and use literal commands afterwards (compared to using telnet/netcat only).
However, what the server understands obviously depends on your server:
ftp> quote foobar
---> foobar
500 Unknown command.
It should already be enough to run
echo $(yes yes)
The $(...)
runs the inner command until it is finished and captures all its output. - Now as yes
runs a long time and generates a lot of output, bash will eventually run out of memory and crash.
Best Answer
via wikipedia: http://en.wikipedia.org/wiki/Yes_(Unix)