1

ディレクトリ パスである単一のコマンド ライン引数を取るスクリプトが必要です。スクリプトは引数をチェックして、それが実際にディレクトリであるかどうかを判断する必要があります。ディレクトリの場合、スクリプトはそこにあるすべてのサブディレクトリの保護モードを 600 に変更する必要があります。引数がディレクトリでない場合は、適切なメッセージが出力されます。

私は持っている

[-d $1] の場合。それから


そうしないと

echo "これはディレクトリではありません"

フィ

基本的に、空行に何を入れればいいのかわかりません。私は chmod をいじっていましたが、私の行はサブディレクトリだけでなく、入力されたパスを変更したいようでした。

4

2 に答える 2

8
if test -d "$1"; それから
    find "$1" -type d -exec chmod 600 '{}' \;
そうしないと
    echo "ディレクトリではありません: $1" >&2
    1番出口
フィ

さまざまなバリアントがより高速になる可能性がありますが、古代findまたはxargs.

find "$1" -type d -exec chmod 600 '{}' +
find "$1" -type d -print0 | xargs -0r chmod 600
于 2009-10-14T21:06:17.327 に答える
0
([ -d "$1" ] && find $1 -type d -mindepth 1 | xargs chmod 600 | true) || echo 'Not a directory'
于 2009-10-14T21:44:22.820 に答える