ファイルのx権を削除する
WindowsからLinuxへ、Sambaを利用してファイルをコピーすると、ファイルやディレクトリにx権が付加される。
これがいやならSambaの「create mask」パラメータあたりを設定すれば解決するが、デフォルトが「0744」なので、ちょっとLinuxをインストールして、ちょっとSambaを使ったときなど、設定し忘れる。
また、すでに付加されたファイルに対しては、x権を削除したい。
ってことで、コマンドで対処。
最初は、シェルスクリプトを作って、指定ディレクトリ以下のファイル一覧を取得し、ディレクトリなら再帰呼び出し、ファイルならchmod、なんてことをしていたが、何か別のことを調べているときに、とっても便利なコマンドを発見してしまった。
「find」コマンド。findコマンドは、ファイルを探すときなどに使うが、それ以上のことができてしまう、とってもすごいコマンドだった。
findコマンドは、ファイル/ディレクトリの種別指定ができる。「-type」オプション。「-type f」ならファイルのみが処理対象で、「-type d」ならディレクトリのみ。
findコマンドは、検索したファイルを画面表示する以外に、検索したファイルに対してコマンドを実行できる。「-exec」オプション。
したがって、カレントディレクトリ以下のファイルのみに対して、x権を削除するfindコマンドは、次のようになる。
find . -type f -exec chmod a-x {} \;
{}は、検索したファイル名が入る部分。また「\;」はコマンドラインの終了を示す。
外部リンク:
ちょっとだけカッコよく find(1) を使う (findコマンドの説明が、非常に分かりやすいページ) - Studio Sixnine.内
« Googleロゴ - セサミストリート40周年 その2 | トップページ | Googleロゴ - セサミストリート40周年 その3 »
「Linux」カテゴリの記事
- [Linux] ログイン画面のOS名表示など(2013.08.12)
- CentOSからWin7の共有フォルダへアクセス(2011.11.27)
- namazuのインストール手順(2011.09.02)
- mknmzで、エラー 'sh: line 1: no: command not found'(2011.08.30)
- PostgreSQL 8.1から7.3へデータ移行(2011.08.24)