[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:98901] Re: 再帰的シンボリックリンクの探索(was Re:[Q]mailqとsendmail)


In article <2747-Mon21Apr2003195354+0900-eban _at_ os.rim.or.jp> on jlug.ml.users,
	eban _at_ os.rim.or.jp wrote:
 | Rubyだとこんな感じかな。
 | % ruby -le 'f = ARGV[0]; while File.symlink? f do print f; Dir.chdir File.dirname(f);f = File.readlink f end;print f' /usr/bin/mailq
 | ついでにPerlも。
 | % perl -MFile::Basename -le '$_ = shift;while(-l){print;chdir dirname($_);$_ = readlink};print' /usr/bin/mailq

  sh版。

% sh -c 'f=$1;while [ -h $f ];do echo $f;cd `dirname $f`;f=`readlink $f`;done;echo $f' '' /usr/bin/mailq

  bash版スクリプト。~/bin/readlink-L とかに置いとくと吉。

#!/bin/bash -e
n="$1"
while [[ -d "$n" && "$n" != / && "$n" == */ ]] ; do n="${n%/}" ; done
test -L "$n" -o -e "$n"
while [ -L "$n" ] ; do
  echo -n "$n -> "
  cd "$( dirname "$n" )"
  n="$( readlink "$n" )"
done
echo "$n"

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: