[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 15:49 / Filesize : 181 KB / Number-of Response : 858
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

zsh その4



1 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/02 20:03:26 ]
zshのスレその4です。

過去スレ
zsh入門
pc.2ch.net/test/read.cgi/unix/990283346/
zsh入門 パート2
pc3.2ch.net/test/read.cgi/unix/1036324177/
zsh その3
pc5.2ch.net/test/read.cgi/unix/1080002786/

>>2-3リンク

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 12:59:46 ]
MYCOMのzsh連載、早速第2回が掲載されているね。
今度はプロンプトのカスタマイズ。

626 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 13:22:22 ]
PROMPT="%B%{^[[31m%}%/#%{^[[m%}%b " # ただし ^[ は エスケープシーケンス
よりは
PROMPT=$'%B%{\e[31m%}%/#%{\e[m%}%b '
とか
autoload -U colors; colors
PROMPT="%B%{$fg[red]%}%/#%{$reset_color%}%b "
とかのほうがよさそうなもんだが

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 13:37:22 ]
> エスケープを直接設定ファイルに記述することを嫌って、
> echoやprintfコマンドを使う場合もある。好きな方を選べばいい。
> ただ、コマンドだとプラットフォームごとに動いたり動かなかったりするので、
> ここでは直接書いて使っている
echo も print も printf も組み込みコマンドですがなにか

628 名前:626 mailto:sage [2007/02/16(金) 13:39:46 ]
誤)エスケープシーケンス
正)エスケープ
orz

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 14:25:01 ]
設定ファイルとかプロンプトとかどうでもいいからさっさと補完の事教えてくれよう

630 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 21:36:58 ]
あんまり期待できないな

631 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 09:15:00 ]
この程度の事はだれもが通る道だよな
それで記事が書けるなんて

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 10:59:40 ]
紹介記事(スレ住人的には既に通ってきた内容)と
使いこなし記事(スレ住人も新たな発見がある内容)
は違うよなぁ……


633 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 12:02:36 ]
このコラムはどういう層を対象にしてるんだろうか



634 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 12:09:58 ]
第1回の出だしに、こんなの書いてある
> ここ1年でzshへ移行しやすい状況が整ってきている。
> はじめるには悪くないタイミングだ。

これからzshを始める人向けだろう

635 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 12:34:49 ]
いや、それはわかってるけど…

636 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 13:14:31 ]
大地の記事がそんなにいいわけないだろ。
冷静になれ。

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 18:20:30 ]
むしろこのスレの住人がうなるようなコアな内容を出してきたらウケル。

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:02:04 ]
>>637
ありえない。

もうUNIXUSERの記事の焼き直しでいいよ。

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:06:28 ]
妙な記事書かれるより安心だなw

640 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:17:27 ]
zshに限らず最近シェル使わなくなってきた

641 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:54:57 ]
compctlの解説だけで終わったりして

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 20:03:17 ]
シェル使わないってなんだ。ログインすらしてないってことか。

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 21:14:52 ]
正直にいって細かく設定しても使わないよね
zshrcは千行あるけど



644 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 23:16:31 ]
>>641
compsysは無しかよw

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/18(日) 02:04:24 ]
その1000行のzshrcを見せてもらおうか

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/18(日) 20:08:40 ]
一行一レスでいいから

647 名前:名無しさん@お腹いっぱい。 [2007/02/24(土) 10:43:48 ]
htmlで終わるファイルが存在すれば"Exist"と表示させたいとして、
zsh で、
if [ -e *html ];then echo "Exist";fi
とすると、
zsh: no matches found: *url
となってしまいます。
shでは期待どおりの動作をします。
zshで期待のどおりの動作をするにはどうすればよいでしょうか?


648 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 11:22:11 ]
setopt NULL_GLOB


649 名前:647 [2007/02/24(土) 11:56:49 ]
ありがとうございました。
こうすると、上の問題は解決しましたが、htmlで終わるファイル名を表示しようとして
ls *html
とすると、ディレクトリにhoge.htmlがあっても
ls: *html: そのようなファイルやディレクトリはありません
と出ようになりました。
この問題を解決避けるには、
いちいち、setopt NULL_GLOB, setopt GLOB
をしなければならないのでしょうか?

650 名前:647 [2007/02/24(土) 12:09:56 ]
if noglob [ -e *html ];then echo "Exist";fi
としてもいいみたいですね。

651 名前:名無しさん@お腹いっぱい。 [2007/02/24(土) 12:41:46 ]
echo {1..3}

1 2 3
となります。
echo {a..c}
では
{a..c}
です。
これを
a b c
とするように出来ないでしょうか?

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 12:50:38 ]
出来ない

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 12:51:43 ]
bashならできる



654 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 13:24:36 ]
>>651
setopt brace_ccl
echo {a-z}

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 13:33:21 ]
{a..c}を、という質問なわけだが、、

656 名前:651 [2007/02/24(土) 13:55:06 ]
>>652-655
ありがとうございます。
{a..c}
ではできない、やりたかったら、
>>654
のようにしろ、ってことですね。
ありがとうございました。


657 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 20:36:40 ]
mycomの連載、3回目は履歴に関して

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 22:04:30 ]
>647
noglob と nullglob を混同してない?

noglob は glob しなくするオプション(globの否定)だけど、
null_glob はそれとは違うよ。
オレの環境では null_glob をセットしてもそんなエラーにはならないんだけど。


659 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 22:15:22 ]
unsetopt nomatch してるんじゃ?

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 23:08:41 ]
まあ *.html(N) でいい

661 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 23:32:56 ]
mycomの今回のはあまり参考にはならんかった。zsh初心者向けぽいな。

ちなみに俺は履歴関連はこんだけオプション有効にしてる。
man zshoptions 読むだけでもマンドクセ状態だが・・・

setopt extended_history
setopt hist_expire_dups_first
setopt hist_ignore_all_dups
setopt hist_ignore_dups
setopt hist_ignore_space
setopt hist_reduce_blanks
setopt hist_save_no_dups
setopt hist_verify
setopt inc_append_history
setopt share_history
setopt csh_junkie_history


662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 00:08:02 ]
漢漢と五月蝿い記事だなあ。

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 09:20:45 ]
誰か $path から存在しないディレクトリを削除するコードを書いてくれ



664 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 10:22:44 ]
手元の .zshenv より

addpath () {[[ -d $1 ]] && path=($path $1)}
# add $* to top of PATH list.
addpathlist() {
tmppath=
for newpath in $*
if [ -d $newpath ]; then
tmppath=($tmppath $newpath)
fi
path=($tmppath $path)
unset tmppath
}

addpathlist ~/bin /usr/local/bin /usr/local/gnu /usr/X11R6/bin /usr/local/X11R6/bin /usr/local/X11R5/bin
addpath /usr/local/gcc/bin
addpath /usr/ucb
...

665 名前:647 [2007/02/25(日) 12:49:04 ]
>>658

すみません。ウソ言ってました。

>こうすると、上の問題は解決しましたが、htmlで終わるファイル名を表示しようとして
>ls *html
>とすると、ディレクトリにhoge.htmlがあっても
>ls: *html: そのようなファイルやディレクトリはありません
>と出ようになりました。

は間違いでした。正しくは、
(setopt NULL_GLOB とすると)
*htmlにマッチするものが無い場合、
カレントディレクトリ以下のファイル、ディレクトリが全て表示される、
です。
そして、NULL_GLOBはglobにマッチするものがなかったら何も渡さない、
ということでNO_GLOBはglobしない、という違いも理解しました。
だから、当前、setopt NULL_GLOB をして*htmlにマッチするものが無かった場合は
上のような動作をするのですね。
私が初めに書いたエラーがでるのは、setopt NO_GLOBとした場合ですね。


>>659
さんのようなオプションをつけていたわけではなく、単に私の間違いでした。

>>660
さんのおっしゃるように、
if [ -e *html(N) ];then echo "Exist";fi
でもOKでした。


666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 14:39:20 ]
試さずにかいたが、-e *html(N) って常に真を返さないか

667 名前:647 [2007/02/25(日) 15:37:36 ]
>>666
そうですね汗
またまたいいかげんなこと言ってしまいました。
if [ -e *html(N) ];then echo "Exist";fi
はつねにExistとでます。

>>647で書いたことをやりたい場合には、

1)
setopt NULL_GLOB
if [ -e *html ];then echo "Exist";fi
(この場合はls *htmlで*htmlがなかったらlsと同じになってしまうので)
そのあとで
setopt GLOB

2)
または、
if noglob [ -e *html ];then echo "Exist";fi

が正しいようです。


668 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 16:29:49 ]
1) は setopt NO_GLOB では。
NULL_GLOB だと多分 *html(N) と変わらないよ。
あと、特に [ に拘らなければ
[[ -e *html ]] でもいいかな。

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:29:32 ]
$ touch test.html
$ [ -e test.html ] && echo found || echo not found
found
$ [ -e *.html ] && echo found || echo not found
found
$ [[ -e test.html ]] && echo found || echo not found
found
$ [[ -e *.html ]] && echo found || echo not found
not found
$ touch '*.html'
$ [[ -e *.html ]] && echo found || echo not found
found

670 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:39:18 ]
[[ ]] はグロブを展開しないぽい
[ はコマンド扱い? (これも builtin だよね)

671 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:55:15 ]
>>647
htmlで終わるファイルが存在すれば"Exist"と表示させたい(ただしzsh: no matches foundは嫌)は、

unsetopt nomatch するのが一番だろ。
その後は [ -e *html ] でも [ -n `echo *html` ] でもおk ( [[ -e *html ]] はだめぽい )

もしnomatchが嫌なら
[ -e *html(N) '' ] && echo Exist
{ [ -e *html ] && echo Exist } 2>/dev/null
みたいなw

672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:59:40 ]
案外、簡単に処理できないもんだな。気付かずに罠にはまりそう。
昔ながらのやり方が安全かw
if ls | egrep '\.html$' >/dev/null; then echo Exists; fi

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 18:13:15 ]
glob関連はNOMATCH, NULL_GLOB, CSH_NULL_GLOB とオプションがあってよくわからん。

参考:
ttp://d.hatena.ne.jp/amt/20060907/nomatch
ttp://d.hatena.ne.jp/amt/20060806/ZshNoGlob
ttp://www.ayu.ics.keio.ac.jp/~mukai/translate/zshoptions.html (man zshoptions)



674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 18:33:09 ]
nomatchは途中で処理が止まるから厄介
$ echo *UNKO; echo AAAAAAAAAAAAAAAAAAAAAAAA
zsh: no matches found: *UNKO
$

675 名前:名無しさん@お腹いっぱい。 [2007/02/26(月) 07:55:40 ]
>>669
> $ [ -e *.html ] && echo found || echo not found

↑は .html ファイルが2つ以上ある場合は動かない.

[ -e `ls -1 *.html|head -n 1` ] && echo found || echo not found
だとちゃんと動くが、もっとスマートなやり方はないものか...


676 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 07:59:19 ]
>>675 の訂正.
> $ [ -e *.html ] && echo found || echo not found
は zsh では動くね. bash では動かないけど.
でも混乱を避ける為に、↑のように書くのは良くないだろう

677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 08:34:32 ]
サブシェル使ってよければ
(for f in *.html; do [ -f "$f" ] && return 0; done; return 1) && echo aru || echo nai
/bin/shで動く筈。

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 11:03:52 ]
もう外部コマンド使って
ls *.html | wc | awk '{print $1}'
でいいじゃん

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 11:18:07 ]
アホ現る

680 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 21:05:11 ]
[ `echo -n *.html(N) | wc -l` -gt 0 ]


681 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 21:26:59 ]
[[ -n `echo *html(N)` ]] && echo Exist || echo # うまくいく
[[ -n `echo` ]] && echo true || echo false # false

[ -n `echo *html(N)` ] && echo Exist || echo # 常にExist, だめ
[ -n `echo` ] && echo true || echo false # true

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 02:46:16 ]
[[ls *.html && $? ]] じゃ駄目なわけ?

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 02:47:37 ]
``わすれた・・・



684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 02:48:42 ]
しかも-aだね。逝ってきます。

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 22:11:55 ]
mycomの連載、更新されていたけどツッコミどころが幾つかあるな

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 01:23:44 ]
よしつっこめ。

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 03:11:14 ]
ショートカットキーという言い方は気持が悪いな

688 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 01:38:58 ]
最近はてブのホットエントリでzsh関連のをちょくちょく見掛けるけどなんかあったのかしら。

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 06:18:24 ]
そういう連中にとってzshがクールでナウいんだよ。

690 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 18:55:38 ]
localeがちゃんとしてたらja_JP.SJISでも動きますか?

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 19:17:30 ]
ナニが?

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 01:16:40 ]
カーソル移動とかプロンプト等の桁数計算とかSJIS2バイト目のメタキャラクタ無視とか。

693 名前:名無しさん@お腹いっぱい。 [2007/03/16(金) 10:04:06 ]
あれ?

% autoload predict-on
% predict-on
predict-on:zle:5: can only be called from widget function




694 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 14:01:13 ]
錫癜

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 20:44:04 ]
>693
ウチではそのエラー出ないよ

ところで、恥ずかしながら predict-on は知らなかったですよ。


696 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/24(土) 22:24:26 ]
>>663-664
久しぶりに見たから1ヶ月前へのレスだけど
path=($path(N))
でいけない?

697 名前:663 mailto:sage [2007/03/24(土) 23:10:35 ]
user@ubuntu:~$ zsh -f
ubuntu% test=(foo bar /home)
ubuntu% echo $test
foo bar /home
ubuntu% echo $test(N)
foo bar /home
ubuntu% echo ${^test}(N)
/home

>>696だとうまくいったりいかなかったりで困ってたんですけど、rc_expand_paramのせいでした。
path=(${^path}(N)) でうまくいくみたいですね。

698 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/03(火) 14:48:38 ]
suffix alias がコマンドでも展開されて欝

699 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:16:19 ]
mycom の連載見て、bash から乗り換えたら欝

bash
$ sudo rm ~foo (~foo -> /home/foo のシンボリックリンク)
シンボリックリンク ~foo が消える

zsh
% sudo rm ~foo (~foo -> /home/foo のシンボリックリンク)
Error: foo はディレクトリ
% sudo rm -r ~foo
ホームディレクトリが消える orz

700 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:21:46 ]
まさか '~foo' ってファイルを作ったのか?

ニョロ展開をやめさせたいんなら
./~foo って指定すればいいし何が言いたいのかわからん


701 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:24:47 ]
>>700
違うよ。

俺は意味わかった。zshが ~の展開の際にシンボリックリンクをたどってしまう
という問題だね。Error: foo はディレクトリ の時点で気づくべき。

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:32:22 ]
いまいちよくわらん。
foo アカウントのホームディレクトリが /usr/home/foo とかになってて、
それが /home/foo へのシンボリックリンクになってる、とかそんな感じ?

つーかなんで rm -r なんてする気になったんだろ。

703 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:39:59 ]
同じく意味がわからん

少なくとも問題という意識はわからん

(動作の話はそういうものとしか言いようがないし...
>702 も言う通り -r はそれこそ意図的じゃん)



704 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:41:06 ]
unsetopt chaselinks
で解決したりする?

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:44:18 ]
シンボリックリンクに対して rm -r しても、
そのシンボリックリンクが消えるだけ(先までたどらない)からだろ。
多分、rmでエラーが出たから rm -r にしただけだろ。
まさか、~foo が実体ディレクトリを指してるとは頭から思ってないから、
シンボリックリンクを消す意味で気軽に rm -r したと。

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 17:57:57 ]
>>705
その「エラーが出たから -r」ってのが意味わからん。
-f ならまだわかるけど。

707 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 18:00:07 ]
で、「~foo」っていうファイルはあったのか?
なかったのか?

708 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 18:01:32 ]
>>707
お前ずれてる。~fooなんてファイルの話じゃない。

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 18:02:21 ]
>>708
んじゃどういう話?

710 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 18:03:09 ]
>>709
読解力ない香具師だなぁ。

711 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 18:04:16 ]
>>710
すまんね。
詳細教えてくれよ。

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 18:06:19 ]
/etc/passwd には、/usr/home/foo で登録されてる。
/usr/home/foo はシンボリックリンクで、実体の /home/foo を指している。

この状態で、~foo というチルダ展開は、
bashだと /usr/home/foo に展開されるが、
zshでは /home/foo に展開される。
という問題。

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 18:08:27 ]
では>>699さん、正解をどうぞ。



714 名前:699 mailto:sage [2007/04/10(火) 20:35:00 ]
説明不足で、ごめんなさい。
真相は>>701, >>705さんのおっしゃる通りです。

昔 bash で
/bar$ ln -s /home/foo ~foo
として /bar/~foo を作ったのですが、もう使う必要がなくなったので今日 zsh で
/bar% rm -r ~foo
としたら、ユーザ foo のホームディレクトリ /home/foo 自体が消えてしまった
ということです。

bash では
alias rm="rm -i"
としていたので、rm のエラーに対していつもの勢いで -r の試行をしてしまいました。

>>713
私が悪いので、皆さん正解です。

715 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 21:05:19 ]
シンボリックリンクを消すならunlink

716 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 22:04:28 ]
そういえば mycom の連載があったな。すっかり忘れてた。
つっこもうと思ってそれっきりだった。

717 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 22:40:44 ]
>>716
では遠慮なくツッコメ。

718 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 23:55:45 ]
けっきょく ~foo あったんじゃん。

719 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 02:25:44 ]
シンボリックリンクにrm -rやったのがまずいよ。

720 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 07:12:17 ]
>>718
なんでやねん。欲嫁。

>>714 では、
$ ln -s /home/foo ~foo
と実行してるから、~fooという名前のsymlinkはできない。
~fooという名前のsymlinkを作るためには、

$ ln -s /home/foo '~foo'
のように、クォートするなり、./~foo みたいに ./を付けるなりしないといけないから。

721 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 07:14:15 ]
>>719
シンボリックリンクにrm -rやること自体はまずくない。(変ではあるが)
まずかったのは、それがシンボリックリンクではなかったこと。

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 08:37:49 ]
>721
いや、シンボリックリンクに対して rm -r するのはおかしいよ。

-r オプションは「当該ファイルをディレクトリとみなして中身もいっしょに
消す」という意図のオプションだから、仮に rm で消せなかったとしてもシン
ボリックリンクだと認識しているファイルに使うのがまずヘン。
だって中身を消したかったわけじゃないでしょ。


723 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 09:45:48 ]
>>714
> として /bar/~foo を作ったのですが、
って言ってるんだから、
~foo っていうファイル名のファイル (シンボリックリンク) が
あったんじゃないの?



724 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 09:53:03 ]
>>723
そこは確かに曖昧だが、質問者の理解不足によるものだろう。

ln -s /home/foo ~foo
を実行してシンボリックリンクを作っている以上、
~fooは展開されて、実際のパス名になるから、
「~foo」なんて名前のシンボリックリンクができたわけではないことは明らか。

725 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 09:58:53 ]
そもそも元質問者のレベルの人が、~が付いたファイルを作ること自体難しいだろう。
(クォートとかで回避する方法も知らないだろうし)






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<181KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef