0

私はシェルスクリプトを書いています(私はそれを吸います)、そして私はいくつかの助けが必要です。gitからCVSに物事を移動するスクリプトです(重要ではありません)。問題は、iaファイルパスです。

controllers/listbuilder/setup/SubmissionRolesListbuilderHandler.inc.php

そして私はできる必要があります:

cvs add controllers;
cvs add controllers/listbuilder;
cvs add controllers/listbuilder/setup;
cvs add controllers/listbuilder/setup/SubmissionRolesListbuilderHandler.inc.php

誰かが私を助けることができますか?私がこれまでに思いついた最善の方法は、作業ツリーにすべてのファイルを再帰的に追加することですが、それは非常に非効率的です。

編集:私は説明を求められました。ファイルパスのリストを指定して、CVS ADDファイルを作成し、必要に応じて新しいフォルダーの追加を何らかの方法で処理できるようにしたいと考えています。

4

2 に答える 2

1

すべてのディレクトリを追加します。

find . -type d -exec cvs add {} \;

すべてのファイルを追加します。

find . -type f -exec cvs add {} \;

あなたが本当に達成したいことはわかりません。

于 2010-04-30T01:08:58.600 に答える
0

これはややクルーゲ風で、汚い見た目をすると間違いなく失敗しますが、次のようになります。

mkdir a/b/c/d

remain="a/b/c/d/"
while echo "$remain" | grep -q / ; do
    dir="$(echo "$remain" | cut -d/ -f1)"
    remain="$(echo "$remain" | cut -d/ -f2-)"

    echo "Do something with dir $dir"
done

このスクリプトは、完全なソリューションというよりもアイデアです。たとえば、ディレクトリ名だけでなく完全な相対パスが必要な場合は、cut -d/ -f1-$i.

于 2010-05-07T01:27:43.803 に答える