1

ディレクトリ (「C:\images」としましょう) を指定し、そこからすべての .jpg ファイルを別のディレクトリ (「D:\media」とします) に移動し、ディレクトリ構造を保持する方法はありますか (つまり、ファイルが「 C:\images\paintball\july\07\headshot.jpg" を移動すると、"D:\media\paintball\july\07\headshot.jpg" になります)?

私は cygwin を使用しています (ただし、DOS が機能する場合は喜んで使用します)。

4

4 に答える 4

2

うん。

ディレクトリ構造(スイッチがあります)を保持しながら* .jpgファイルのtarアーカイブを実行し、それをターゲットディレクトリに抽出します。ワンライナーである必要があります。

于 2009-02-24T20:01:36.580 に答える
2
( cd /cygdrive/c/images
tar --create --file - . ) | ( cd /cygdrive/d/media
tar --extract --file - )

一部のバージョンの tar には、サブシェル間の複雑なパイプを回避できる --directory オプションもありますが、私自身は使用したことがないため、何か不足している可能性があります。

tar --create --file - -C /cygdrive/c/images . | tar --extract --file - -C /cygdrive/d/media

より強力な機能や柔軟性が必要な場合は、時間をかけて rsync を調査してください。

Windows を使用しているので、 も参照できますxxcopy。この種のものやその他多くのものに最適です。

于 2009-02-24T20:25:48.720 に答える
0

次の例のように、 xcopyコマンドを使用することもできます(old はディレクトリです)。

xcopy cvs_src\*.jpg old /e/i/h/y/d/exclude:files_to_exclude
于 2009-02-25T10:22:04.293 に答える
0

XCOPY ソリューションのおかげで、同様の問題が解決されたので、必要な他の人のために詳細を共有したいと思いました。

ディレクトリ (およびサブディレクトリ) 内の特定の種類 (*.jpg など) ではないすべてのファイルのリスト (コピーではない) が必要でした。ただし、DIR コマンドには除外機能がありません。だから私:

  1. 単一行「.jpg」を含む exclist.txt という名前のファイルを作成しました
  2. コマンド「xcopy c:\files c:\test /exclude:exclist.txt /l /d /e /h /i /y > found.txt」を実行しました
  3. jpg 以外のファイルのリストを表示するために、メモ帳で found.txt を開きました

XCOPY /l パラメータに注意してください。これは、コピーせずにコピーするファイルを一覧表示します。XCOPY は「リストモード」で実行されるため、コピー先フォルダー c:\test は作成されず、ファイルはコピーされません。"> found.txt" は、結果を画面に表示するのではなく、XCOPY コマンドからの出力をファイル found.txt に保存します。

于 2009-07-19T17:11:07.517 に答える