Dizin dolaşma

Uzak dosya sistemini dolaşmak için FTP komutları yaparken, curl'ün hedef dosyaya, kullanıcının aktarmak istediği dosyaya ulaşmak için izleyebileceği birkaç farklı yol vardır.

multicwd

curl, dosya ağacı hiyerarşisindeki her bir dizin için bir dizin değiştirme (CWD) komutu yapabilir. Tam yol one/two/three/file.txt ise, bu yöntem file.txt dosyasının aktarılmasını istemeden önce üç CWD komutu yapmak anlamına gelir. Bu yöntem, yol birçok seviye derinliğindeyse oldukça fazla sayıda komut oluşturur. Bu yöntem erken bir spesifikasyon (RFC 1738) tarafından zorunlu kılınmıştır ve curl varsayılan olarak böyle davranır:

curl --ftp-method multicwd ftp://example.com/one/two/three/file.txt

Bu daha sonra şu FTP komut/yanıt dizisine eşittir (basitleştirilmiş):

> CWD one
< 250 OK. Current directory is /one
> CWD two
< 250 OK. Current directory is /one/two
> CWD three
< 250 OK. Current directory is /one/two/three
> RETR file.txt

nocwd

Her dizin parçası için bir CWD yapmanın tersi, dizini hiç değiştirmemektir. Bu yöntem, tüm yolu kullanarak sunucuya bir kerede istekte bulunur ve bu nedenle hızlıdır. Ara sıra sunucuların bununla ilgili bir sorunu olur ve tamamen standartlara uygun değildir:

curl --ftp-method nocwd ftp://example.com/one/two/three/file.txt

Bu daha sonra şu FTP komut/yanıt dizisine eşittir (basitleştirilmiş):

> RETR one/two/three/file.txt

singlecwd

Bu, diğer iki FTP yönteminin arasındadır. Bu, hedef dizine tek bir CWD komutu yapar ve ardından verilen dosyayı ister:

curl --ftp-method singlecwd ftp://example.com/one/two/three/file.txt

Bu daha sonra şu FTP komut/yanıt dizisine eşittir (basitleştirilmiş):

> CWD one/two/three
< 250 OK. Current directory is /one/two/three
> RETR file.txt