FTP имеет довольно много команд. В то время как клиент отображает некоторые из них к более удобному для пользователя текстовому интерфейсу.
Например, если Вы используете ftp -v
(в зависимости от Вашего ftp
клиент, тот я использую потребности ftp -vd
), Вы заметите что-то как следующее (--->
шоу, что отправляется на сервер):
$ 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.
Таким образом, Ваше удобное cd
вызовы отображаются на CWD
команды.
Некоторые клиенты FTP позволяют Вам отправлять verbatim FTP команды на сервер; в Вашем это, покончили literal
(мой ftp
использование quote
):
ftp> quote CWD ..
---> CWD ..
250 Directory successfully changed.
Полезный? Действительно, это позволяет Вам взаимодействовать со своим FTP-сервером способами, о которых не знает клиент. Возможно, Ваш клиент не реализует SITE
команды, затем Вы могли все еще использовать literal SITE [...]
чтобы иметь сервер делают то, что Вы хотите. Вещи как FXP могут быть сделаны с любым клиентом FTP, использующим изготовленные вручную команды, также (хотя вполне неудобно). Кроме того, для экспериментирования с FTP это более удобно, чтобы иметь процесс входа в систему, обработанный клиентом FTP и использовать литеральные команды впоследствии (по сравнению с использованием telnet/netcat только).
Однако то, что сервер понимает, очевидно, зависит от Вашего сервера:
ftp> quote foobar
---> foobar
500 Unknown command.
Комментарий @jordanm закрепил его. Я предположил, что размер файла был зафиксирован, когда я посмотрел на вывод ls -lh disk.img
. Когда я использовал ls -s disk.img
как в ответе @Stephan реальный размер файла, показал. Как тест, я создал файл изображения, который больше, чем мой жесткий диск:
truncate test.img -s 1000G
И это работает просто великолепно, что означает, что ответ находится в вопросе :)
Создайте редкое файловое устройство, с помощью dd.
df -hm # to show where we started
dd of=sparse-file bs=1k seek=102400 count=0 # creates a 100Meg sparsefile
mkfs.ext4 sparse-file
mkdir blah
mount sparse-file blah
cp somefile blah
ls -lahts sparse-file # The 's' option will report the actual space taken in the first column
ls -lahts blah
df -hm # doublecheck my work
echo 'profit :)'
Ссылка: Википедия редкая статья файла
Можно сделать это вручную или с dd, ищут, или легче, так как вы используете усеченный:
truncate -s 100M file
mkfs.ext4 -m0 file
#mount, do whatever
umount /mountpoint
#let's grow it to 200 MB
truncate -s 200M file
e2fsck -f file && resize2fs file
#done
А 2 лайнера для роста его, едва призывает к автоматизации здесь, я смел бы говорить :)
fallocate(1)
. – Lloeki 13.12.2017, 18:01