1

したがって、すべての .xml を 1 つのディレクトリ (サブディレクトリを含む) から新しいディレクトリに移動したいと考えています。ただし、ファイルがサブディレクトリにある場合は、サブディレクトリに残しておきます。基本的に、既に分類されているファイルがたくさんあり、それらのサブセットのみが必要ですが、それらを分離したままにする必要があります。cwd とそのサブディレクトリ内のすべての .xml ファイルを処理するこの単純なコマンドを作成しましたが、これによりすべてが 1 つのディレクトリに配置されます。

find . -name "*.xml" -exec mv {} ~/Desktop/test/ \;

このコマンドを使用して新しいサブディレクトリを作成する方法や、各ファイルをそれぞれの新しい場所に送信する方法がわかりません。perl やその他の言語を使用してこれを実行できることは理解していますが、ターミナル コマンドを使用して実行できるようにしたいと考えています (bash をいじる方法を学ぼうとしています)。

前もって感謝します。

4

3 に答える 3

6

tarディレクトリ構造のファイルをコピーするために使用します。

find . -name "*.xml" -print0 |
tar -cf - --null -T- |
tar -C ~/Desktop/test/ -xf -

または、次cpのオプションを使用できます--parents

find . -name "*.xml" -exec cp -a -t ~/Desktop/test/ --parents {} +
于 2013-05-06T19:52:20.527 に答える
2

次のようなものを試すことができます:

find . -name "*.xml" -exec sh -c 'mkdir -p ~/Desktop/`dirname "{}"`; mv "{}" ~/Desktop/`dirname "{}"`' \;
于 2013-05-06T19:55:23.540 に答える