フォルダーのアクセス許可を設定するために.shスクリプトを作成したいのですが、次のようなものを実行できるかどうか疑問に思いました。
chown -644 ./one;/two;/three
chownを複数回呼び出すのではなく、フォルダーのリストをchownします。
また、次のように、ファイルのリストを作成し、他のいくつかを除外する方法がありますか?
chown -R -664 ./*;!./cache
私の擬似コマンドラインが意味を成すことを願っています。
フォルダーのアクセス許可を設定するために.shスクリプトを作成したいのですが、次のようなものを実行できるかどうか疑問に思いました。
chown -644 ./one;/two;/three
chownを複数回呼び出すのではなく、フォルダーのリストをchownします。
また、次のように、ファイルのリストを作成し、他のいくつかを除外する方法がありますか?
chown -R -664 ./*;!./cache
私の擬似コマンドラインが意味を成すことを願っています。
回答:
ほとんどすべてのUnixツールは、ファイルのリストを非オプション引数として受け入れます。通常どおり、異なる引数はスペースで区切る必要があります。
chown 644 one two three
2番目の例では、Bashを使用している場合、単純な
chown -R 644 !(cache)
十分になります。
このアプローチでは、拡張パターンマッチングが必要です。無効になっている場合は、次の方法で有効にできます
shopt -s extglob
findを使用することは、特定のシェルまたは既に使用しているアプリ内に既に存在する可能性のある正規表現を使用する以外で考えることができる最良の方法です。最初に、私は試しました:
touch one&touch two &touch three&find -name "one|two|three" -exec chown -644 {} \;
しかし、この場合はパイプが機能しないことがわかります。chmod、chown、chgrp、etの学習など、学ぶべきもう1つの悲しいことです。等 マルチファイル/正規表現の選択/除外自体をサポートしていません...
私が見つけた解決策:https :
//stackoverflow.com/questions/19111067/regex-match-either-string-in-linux-find-command
find \( -name one -o -name two -o -name three \) -exec chown -644 {} \;
そのため、勝つための正規表現はそれほど多くありませんが、少なくとも1つのライナーでプログラムの引数にファイルのリストを挿入する方法があります。
()メタ文字をエスケープする必要があることに注意してください。各追加名に-oパラメーターを追加します...
旅行中に興味があるかもしれない他のリンクやコンテンツ:
さまざまな情報-korn bourneや友人からのメモ。-Dave Hornerのウェブサイト
乾杯。
-デイブ