mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux コマンド find で検索 + 処理!

[ サーバ構築 ] [ Linux ]

こんばんは。

今日は Linux(Unix) コマンドの “find” についての個人的メモです。

時々、Linux で以下のような事をする必要が出てくることあります。

  • あるディレクトリ配下全てのディレクトリに同じパーミッションを設定
  • あるディレクトリ配下全てのファイルにディレクトリとは別のパーミッションを設定

以下、メモです。

例1

hoge ディレクトリ配下全てのディレクトリにパーミッション 755 を設定する例です。

1
# find hoge -type d -exec chmod 755 {} \;

“-type d” はディレクトリを検索するオプション。 “-exec” は以降 “;” までの処理を実行するという意味のオプション。 “{}” の中に find で検索した結果が代入される。 “;” の前の “\” は “;” がシェルに解釈されないようにするためのエスケープ(バックスラッシュ or 円マーク)。

例2

hoge ディレクトリ配下全てのファイルにパーミッション 644 を設定する例です。

1
# find hoge -type f -exec chmod 644 {} \;

“-type f” はファイルを検索するオプション。 “-exec” は以降 “;” までの処理を実行するという意味のオプション。 “{}” の中に find で検索した結果が代入される。 “;” の前の “\” は “;” がシェルに解釈されないようにするためのエスケープ(バックスラッシュ or 円マーク)。

find のヘルプ

参考までに find のヘルプです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# find –help
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth –help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      –version -xdev -ignore_readdir_race -noignore_readdir_race

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN
      -readable -writable -executable
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]
      -context CONTEXT

actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <bug-findutils@gnu.org>.


以上。

Comments