aim-db-dir
フォルダの一部のコード内容を別のフォルダにコピーする必要がありますaim-db-dir_nosvn
。aim-db-dir
すべてのディレクトリ(およびサブディレクトリ)には.svnフォルダが含まれており、これらの.svnフォルダには私が気にしないいくつかのフォルダとファイルが含まれています。aim-db-dir
.svnフォルダとその内容を除くディレクトリとサブディレクトリのすべての内容をコピーしたいと思います。
それで、私の質問はどうすればいいのかということです。読みrsync
ましたが、ディレクトリとファイルパターンを除外できるかどうかはわかりません。また、findとcpを試してみましたが、何かが抜けました。
私が試しているコマンドは次のとおりです。 (動作しない) -
find aim-db-dir/* -not -name ".svn" | sed -n 's|^aim-db-dir/||p' -exec cp -R "{}" "aim-db-dir_nosvn/{}" \;
私も使ってみようかと思いはしてみましたが、xargs
一度も書いたことがなくて使うことができるかもしれませんね。さまざまなソリューションを高く評価します!
答え1
find
GNUとGNUの使用cpio
:
find /path/to/aim-db-dir -name .svn -prune -o -print0 | cpio -padmv0 /path/to/aim-db-dir_nosvn
そしてrsync
:
rsync -av -exclude=.svn /path/to/aim-db-dir/ /path/to/aim-db-dir_nosvn
末尾のスラッシュが重要です。スラッシュがない場合、/path/to/aim-db-dir/
inというディレクトリが作成されます。aim-db-dir
aim-db-dir_nosvn
GNUの使用tar
:
tar cpf - --exclude-vcs -C /path/to/aim-db-dir . | tar xvpf - -C /path/to/aim-db-dir_nosvn
tar
デフォルトのPAX形式の制限により、コピーに使用できるファイルパスの最大長に制限があります。