[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:51237] find expression -or
柏崎@北海道です.
find の -or オプションについて質問させて頂きます.
あるユーザ,あるいはあるグループの所有になっているファイル一覧を
取得するために以下のようなコマンドを実行しました.
% find ./ -user hoge -o -group fuga -print
しかしその結果として現れたのは「user が hoge ではなく,かつ,
group が fuga であるもの」でした.
仮にこんなことをしてみます.
% touch hoge-hoge
% touch hoge-fuga
% touch fuga-hoge
% touch fuga-fuga
% sudo touch hoge.hoge hoge-hoge
% sudo touch hoge.fuga hoge-fuga
% sudo touch fuga.hoge fuga-hoge
% sudo touch fuga.fuga fuga-fuga
% ls -l
合計 8
drwxr-xr-x 2 hoge hoge 4096 2008-11-14 18:57 .
drwxr-xr-x 7 hoge hoge 4096 2008-11-14 18:55 ..
-rw-r--r-- 1 hoge hoge 0 2008-11-14 18:56 hoge-hoge
-rw-r--r-- 1 hoge fuga 0 2008-11-14 18:56 hoge-fuga
-rw-r--r-- 1 fuga hoge 0 2008-11-14 18:56 fuga-hoge
-rw-r--r-- 1 fuga fuga 0 2008-11-14 18:57 fuga-fuga
% find . -user hoge -or -group fuga -print
./fuga-fuga
%
\( \) を使って expression をくるむと期待した挙動になります.
% find . \( -user hoge -or -group fuga \) -print
.
./hoge-fuga
./hoge-hoge
./fuga-fuga
%
これは find の -o オプションとして正しい挙動なのでしょうか.もし正しい
挙動ということであれば,どうにもよく理解できないので解説していただける
と幸いです.
--
柏崎 礼生 (Hiroki Kashiwazaki)@HUIST
Assistant Professor @ Graduate School of Information Science and
Technology, Hokkaido University
mailto:reo@xxxxxxxxxxxxxxxxx
Tel:+81-11-706-2056 (Office), +81-11-706-2998 (Takai Lab.)