- ベストアンサー
chmod find パイプ 一緒にやりたいとき
こんにちは、はじめまして。下記のようにすると、正常に実行されるのですが、 chmod 766 `find ./* -type f -print` \; || ll ./* 下記のような、エラーメッセージでます。なぜなぜ?? chmod: cannot access `;': そのようなファイルやディレクトリはありません (やっていること: 自分の(カレント)ディレクトリの下のファイル(通常ファイル) 全部自分に実行権つけて、その結果を "|(パイプ)" で渡して、ls -l で全部表示 ) はじめての質問ですので、よろしくお願いねー??
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
chmod 766 `find ./* -type f -print` || ll ./* で問題ないと思いますが。
その他の回答 (2)
- oldroot2005
- ベストアンサー率66% (68/103)
回答No.3
> chmod: cannot access `;': そのようなファイルやディレクトリはありません と出るのは、-print` \; の部分の \; が余計だからです。 それに || はパイプではありません。OR です。 A || B と書くと A がエラーになったときだけ B も実行します。お尋ねの場合だと、chmod がエラーになったとき、ll も実行されます。 そもそも chmod は標準出力に何も出力しないので、パイプで次のコマンドに渡すこと自体無意味です。 chmod 766 `find ./* -type f -print` && ll ./* がご希望のものでないかと推測します。
質問者
お礼
>oldroot2005 樣 ありがとうございます。完璧です。(自分が、情なくなりました。尊敬いたします。)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
chmod の引数に最後の \; も入ります.
お礼
どうもありがとう御座います。 実は、この質問させていただいた前、一時間程、いろいろ試してみたのです。 標準出力にでる "コマンド" を "|" で渡すのは、自然に理解し易いですが、 (cat a.txt | grep abc とか) "chmod" のように、??? の場合、私、根本的な勘違いしているように、感じたり、他にも問題あったのです。(封鎖するまで、もう少し時間下さいまし。アリガトウポイント20点入れさせて戴きます。(まだ、一度もやったことないので、簡単にできるのでしたら??))