あるディレクトリから別のディレクトリにすべてのファイルとフォルダをコピーしようとしていますが、特定のファイルを除外しています。具体的には、Subversionのファイルとフォルダーを除外します。ただし、一般的かつ簡潔なソリューションが必要です。
近い将来、いくつかの種類のファイルを除外する必要があると思います。たとえば、.svn、*。bak、および* .prjを除外できます。
ここに私がそのようにまとめたものがありますが、それは私にとってはうまくいきません。最初の部分、findは動作しますが、xargsとcpで何か間違ったことをしています。私はcpを試してみました-R
。また、私はOS Xを使用していますが、Linuxシステムよりも機能が少ないバージョンのxargsがあるようです。
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
旗です、私はかなり確信しています。あなたは大丈夫でなければならないことを削除(追加するかもしれませんが-mindepth 1
、あなたがコピーしたくないトップレベルのディレクトリフォルダを無視するように、私は仮定)
find
コマンドが-prune
.svnアイテムを除外するために適切に使用している場合でも、そのコマンドに再帰的である-R
ことcp
を伝えるフラグを渡します。そうすると、コマンドに含まれていた細分性が失われます。私はこれを少しいじりますが、答えはコマンドで使用することではないと思います。find
-R
cp