このディレクトリを除くすべてのファイル構造を取得します。

このディレクトリを除くすべてのファイル構造を取得します。

ディレクトリ階層であるファイル構造全体(何千ものファイルと数百のディレクトリを含む)をコピーしたいと思います。ノードモジュールコピープロセスから除外するディレクトリです。

名前付きディレクトリを除外するオプションを使用して、ディレクトリとそのディレクトリ内のすべてのファイルとサブディレクトリから繰り返しコピーできるUnixコマンドはありますか<name>

それは次のとおりです。

cp root/ rootCopy/ --except node_modules

そうでない場合は、bashなどを書かずにコマンドラインでこれを簡単に行う方法はありますか?

答え1

rsyncまたは、コマンドを試すこともできますtar

バラよりこれまたはこれ郵便はがき。

~からrsyncマニュアルページ

    --exclude=PATTERN       exclude files matching PATTERN
    --exclude-from=FILE     read exclude patterns from FILE

rsync -avz --exclude 'dir*' source/ destination/

答え2

不気味なアプローチですが、私には効果がありました。

(find source|egrep -v "node_modules|^source/exact/node_plugin" && echo tmptarget)|xargs cp --parents
mv tmptarget/source target

必要に応じて説明してください。cp仕組みは次のとおりです。

cp source1 source2 ... sourceN target
  • したがって、find全体の構造を印刷します。
  • egrep不要な分岐をすべて除外するために使用されます。パターンが正しく設定されていることを確認してください。^正確なブランチを除外するか、node_modulesすべてのブランチを除外するには、フルパスを使用してください。
  • コマンドを使用してターゲットフォルダを印刷しますecho
  • xargsこれらすべてのラインを直接ご案内いたします。cp
  • --parentsここではこのオプションは使用できないため、ターゲット-rフォルダのすべての内容がめちゃくちゃになるため、親フォルダを作成する必要があります。
  • 最終的にmv実際の目標を達成する新しい構造

関連情報