私は-rおよび-npオプションを使用して、フォルダー内からすべてのファイルをダウンロードするためにwgetを使用しています。ただし、これにより、前のフォルダーもダウンロードされます。
例えば:
wget -r -np ftp://user:[email protected]/articles/artist/images/
これは、「イメージ」内のすべてのファイルをダウンロードします(これは良いことです)が、フォルダarticles、artistおよびimages(これは悪い)もダウンロードします)。これを修正するオプションは何ですか?
あなたが探しているのは--cut-dirs
オプションだと思います。 -nH
(ホスト名なし)オプションと組み合わせて使用すると、ローカル出力に表示するディレクトリのレベルを正確に指定できます。例として、ローカルディレクトリに書き込みたい.pkgダウンロードがあり、サブツリーだけを含めて、親ツリーのすべてを含めたくありません。この場合、親ディレクトリが5レベル下にあるため、.pkg名を取得するための開始点は次のとおりです。
wget -np -nH --cut-dirs 5 -r http://www.myhost.org/pub/downloads/My_Drivers/OS_10_5_x/Letter_Format/driver_C123_105.pkg
表示されるのは、現在のディレクトリのdriver_C123_105.pkgという名前です。
% ls -lt | head
drwxr-xr-x 12 rob rob 408 Feb 22 12:54 driver_C123_105.pkg
-rw-------@ 1 rob rob 0 Feb 16 15:59 1kPSXcUj.pdf.part
-rw-------@ 1 rob rob 842 Feb 3 14:47 WcUuL69s.jnlp.part
[...等...]
% find driver_C123_105.pkg
driver_C123_105.pkg
driver_C123_105.pkg/Contents
driver_C123_105.pkg/Contents/Archive.bom
driver_C123_105.pkg/Contents/Archive.pax.gz
driver_C123_105.pkg/Contents/index.html
driver_C123_105.pkg/Contents/index.html?C=D;O=A
driver_C123_105.pkg/Contents/index.html?C=D;O=D
driver_C123_105.pkg/Contents/index.html?C=M;O=A
driver_C123_105.pkg/Contents/index.html?C=M;O=D
driver_C123_105.pkg/Contents/index.html?C=N;O=A
driver_C123_105.pkg/Contents/index.html?C=N;O=D
driver_C123_105.pkg/Contents/index.html?C=S;O=A
driver_C123_105.pkg/Contents/index.html?C=S;O=D
driver_C123_105.pkg/Contents/Info.plist
driver_C123_105.pkg/Contents/PkgInfo
driver_C123_105.pkg/Contents/Resources
driver_C123_105.pkg/Contents/Resources/background.jpg
[.....等....]
この出力は、-P
オプションを使用して別の場所に移動するように指示できます。
--no-parent
-オプションはあなたが探しているものです。
あなたはこれを探すかもしれません:
wget -r -np -nd ftp://user:[email protected]/articles/artist/images/
-ndスイッチは--no-directoriesの省略形です。
man wget
から:
-np
--no-parent
Do not ever ascend to the parent directory when retrieving
recursively. This is a useful option, since it guarantees that
only the files below a certain hierarchy will be downloaded.