名前のあるディレクトリで繰り返しコマンドを実行します。

名前のあるディレクトリで繰り返しコマンドを実行します。

AIX には、以下のディレクトリー構造があります。

codeRepo/REPO1/AREA1/objects
codeRepo/REPO1/AREA2/SUBAREA1/objects
codeRepo/REPO1/AREA2/SUBAREA2/objects

codeRepoでツリーのchown myUser *すべてのディレクトリで実行したいと思います。objectsご覧のとおり、場所ごとに異なるオブジェクトディレクトリがあります。

答え1

サブファイル以外のディレクトリのみを削除するには、find -exec次のように使用します。

find -type d -name objects -exec chown myUser {} \;

これを行うには: -type dディレクトリのみを選択する -name objects正確に「object」という名前のディレクトリのみを検索します。見つかったパスごとに、-exec chown myUser {} \;次のことを行いますchown myUser {}({}をパスに置き換えます)。

chown内部のすべてのファイルchownも削除するにはchown -R

答え2

あなたは自分の質問にほとんど答えました。答えは、再帰オプション-Rを使用することです。

コマンドの実行sudo chown -R リッチコードRepo/(ユーザー名がrichieだと仮定)

これにより、すべてのファイル/フォルダを所有者として再帰的に設定できますが、できるだけツリーの上に設定するため、より多くのファイル/フォルダが所有者として指定されます。強い方法。

答え3

bashオプションを使用してglobstar目的の深さに移動します**

いつcodeRepo:

shopt -s globstar
chown myUser REPO1/AREA*/**/objects

AREA正確さのために名前の後に数字(文字)が1つしかない場合は、単一の文字を?表すために使用します。

chown myUser REPO1/AREA?/**/objects

同様に、2文字の場合:

chown myUser REPO1/AREA??/**/objects

関連情報