- 1 名前:名無しさん@お腹いっぱい。 [2008/02/11(月) 19:21:07 ]
- シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。 まずは注意点、リンク、地鎮祭など(>>1-6くらい)をご覧ください。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashなので特に注意。 ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルスクリプトのことをシェルってゆーな ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 前スレ シェルスクリプト総合 その9 pc11.2ch.net/test/read.cgi/unix/1187130302/
- 672 名前:667 mailto:sage [2008/04/16(水) 19:36:29 ]
- >>668
これだと rm hoge.conf が lftp 完了前に実行されたようです >>671 "("なんてしらねーよ、みたいなエラーが出てしまいました。
- 673 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 19:49:57 ]
- >>672
system("sh -c 'lftp -f hoge.conf > /dev/null ; rm hoge.conf' &");
- 674 名前:667 mailto:sage [2008/04/16(水) 20:08:22 ]
- >>673
神サンクスです!!それでいけました!
- 675 名前:667 mailto:sage [2008/04/16(水) 20:35:38 ]
- すいません、
いけたと思ったら、lftpが終わるまでブラウザで読み込みが続いてしまいます。 www.stackasterisk.jp/tech/php/php02_02.jsp ---------------------------------------------- > /dev/null」 が「リダイレクト」に相当する記述です。 /dev/null というのは、「ゴミ箱」と思って頂いて構いません。 すべての出力を捨てます。 最後の & は、バックグラウンドで実行するという意味です。 このあたりの詳しいことは UNIX のシェルの本をみれば載っています。 「PHPはそのプログラムの実行が終了するまでハングします」というのは、 つまり IE の地球マークが廻りつづける状態をいいます。 ---------------------------------------------- というのを参照しています。
- 676 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 02:33:27 ]
- ぐぐって得た付け焼き刃の知識をこねくるんではなく
一度基礎から勉強した方がよろしいかと。
- 677 名前:名無しさん@お腹いっぱい。 [2008/04/17(木) 08:36:16 ]
- >>675
結局jpgなんだねw
- 678 名前:名無しさん@お腹いっぱい。 [2008/04/17(木) 12:33:53 ]
- シェルスクリプトで関数計算とかできるの?
A= 2√3/0.0000456789*π+$hoge echo $A 小数点以下なげーとか・・・・
- 679 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 12:47:28 ]
- >>678
$ hoge=123 $ echo "2*sqrt(3)/0.0000456789*(a(1)*4)+$hoge" | bc -l 238368.58352774053454525488 注: πは (a(1)*4) で表す。(atan(1) = π/4 を利用)
- 680 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 12:53:56 ]
- そういう場合はbcとか関数計算を行うプログラムに実行させる。
POSIXシェルならば整数の四則演算が行えるので、この上に(関数演算を含む) 浮動小数点演算を実装すればシェル単独でも可能。
- 681 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 13:00:42 ]
- >>679 少し分かりやすく
hoge=123 pi="(a(1)*4)" echo "2*sqrt(3)/0.0000456789*$pi+$hoge" | bc -l
- 682 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 13:14:45 ]
- 実例 >>679 が投稿された「あと」で、
実例示せずに能書きだけ書いてる >>680 ってマヌケだよなぁ。
- 683 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 14:29:32 ]
- 「やりかた」を書くだけで間抜けなのか
- 684 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 14:33:27 ]
- 具体的な「やりかた」を書いているのは >>679 の方。
>>680 は具体的な「やりかた」を何ひとつ書いていない、だから間抜け。
- 685 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 14:34:14 ]
- そんなことより、批判だけするやつのほうが・・
- 686 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 15:55:30 ]
- シエルで、フォントサイズを変えるのはどうやるんですか
A$ = "エラーが発生しました" echo A$ のところで、「エラー」の文字だけ大きくしたいんですが
- 687 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 16:00:27 ]
- banner Error; echo 'が発生しました'
- 688 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 16:46:29 ]
- 仮想端末のエスケープシーケンスにフォントサイズ変更があれば
「エラー」の前後にそのエスケープシーケンスを書けばいい。 色やブリンクの有無といった変更も同様。
- 689 名前:名無しさん@お腹いっぱい。 [2008/04/17(木) 19:13:26 ]
- スクリプトの神様
今日もありがとうございました 勉強になりました!!!
- 690 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 19:54:36 ]
- banner面白いなw
- 691 名前:名無しさん@お腹いっぱい。 [2008/04/17(木) 22:12:31 ]
- >>679 >>680 >>681 神よ! d(゚Д゚)☆スペシャルサンクス☆( ゚Д゚)b
さて、Excelを窓からブン投げるかw
- 692 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 01:03:30 ]
- このスレは定期的に神が現れるな。的確で即レス、何者なんだろ
- 693 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 01:38:31 ]
- >>686
少し目的からずれる気がするが、以前どっかのスレに 投下したスクリプトをちょっと改造したもの。 #! /usr/bin/env bash # vivid_error.sh -- 標準エラー出力に色を付ける # Original: # ttp://d.hatena.ne.jp/goth_wrist_cut/20080122/1201003827 name='vivid_error.sh' (( $# > 0 )) || { echo "error: $name: No argument." 1>&2 exit 1 } temp=$( mktemp "$TEMP/$name.$PID" ) rm -f "$temp" mkfifo "$temp" sed 's/.*/1m\0m/' < "$temp" 1>&2 & "$@" 2> "$temp" status=$? rm -f "$temp" exit "$status"
- 694 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 02:37:38 ]
- ESC=$(printf '\033')
とかするのおすすめ
- 695 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 08:19:53 ]
- terminfoなsystemじゃないとtputはないかも。
BOLD=`tput bold` EXIT=`tput sgr0` printf "${BOLD}This ${EXIT}is a ${BOLD}test${EXIT}.\n" カラーも可能。 文字列加工はsed等で。
- 696 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 13:32:39 ]
- fifoなんていらないよね。
#!/bin/sh # 標準エラー出力に色をつけてコマンドを実行 if [ $# -eq 0 ] then echo "Usage: $(basename $0) command args..." 1>&2 exit 1 fi exec 3>&1 ESC=$(printf '\033') "$@" 2>&1 1>&3 | sed "s/.*/$ESC[1;31m\0$ESC[0m/" 1>&2
- 697 名前:名無しさん@お腹いっぱい。 [2008/04/20(日) 18:50:18 ]
- 初歩的な質問ですが
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined を LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined の様に変更したいのですが・・・ sed -i "s/^LogFormat \"%h %l %u %t \\\"%r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\"\" combined/LogFormat \"%h %l %u %t \\\"%!414r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\"\" combined/g" /root/test で良い様に思うのですが・・・ "%h \"の様な所でエラーが出て変換ができません よろしくです
- 698 名前:名無しさん@お腹いっぱい。 [2008/04/20(日) 18:51:56 ]
- 初歩的な質問ですが
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined を LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined の様に変更したいのですが・・・ sed -i "s/^LogFormat \"%h %l %u %t \\\"%r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\"\" combined/LogFormat \"%h %l %u %t \\\"%!414r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\"\" combined/g" /root/test で良い様に思うのですが・・・ "%h \"の様な所でエラーが出て変換ができません よろしくです
- 699 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/20(日) 18:53:14 ]
- なんとなくワロタ
- 700 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/20(日) 19:48:07 ]
- >>698
まず、sedプログラム本体は " " じゃなくて ' 'で囲むこと。 " " だといろいろエスケープが面倒。
- 701 名前:名無しさん@お腹いっぱい。 [2008/04/20(日) 21:47:22 ]
- >>700
ありがとうございました 修正できました
- 702 名前:名無しさん@お腹いっぱい。 [2008/04/20(日) 22:34:02 ]
- シェルスクリプトでPerlとかRubyのchopと同等なことって、
どうすればいいですか? bash限定でもかまいません。
- 703 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/20(日) 22:42:41 ]
- >>702
シェルでは、何も考えなくても readとかで読み込んだら自動的に chopされてる。
- 704 名前:名無しさん@お腹いっぱい。 [2008/04/20(日) 23:31:00 ]
- >>703 さっきは、
「echo -nで改行が取れないなあ、あれ?」って状態で質問したのですが、 readでも取れませんでした。で、ようやく\r\n改行だったことに気づきました。 bashの%*\r*で解決しました。
- 705 名前:名無しさん@お腹いっぱい。 [2008/04/21(月) 00:26:14 ]
- 質問させてください
テキストファイル内に 建造物 (けんぞうぶつ) 構築物 (こうちくぶつ) 構造体 (こうぞうたい) ()でくくられた文字のみを取り出したいのですが可能でしょうか?
- 706 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 00:36:23 ]
- >705
いくらでも方法はある。 sed、awk、perl あたりなら一行野郎でいける。 awk -F '\\(|\\)' 'length($2)>0{print $2}'
- 707 名前:名無しさん@お腹いっぱい。 [2008/04/21(月) 00:44:02 ]
- >>706
レスありがとうございます! ちなみにsedだと、どういう風になりますか?
- 708 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 02:15:09 ]
- >>706
建造物 (けんぞうぶつ) 構築物 (こうちくぶつ) 構造体 (こうぞうたい) こういうテキストのこともないかな。
- 709 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 02:19:44 ]
- $ echo '建造物 (けんぞうぶつ) 構築物 (こうちくぶつ) 構造体 (こうぞうたい)' | sed 's/[^(]*(\([^)]*\))/\1/g'
けんぞうぶつこうちくぶつこうぞうたい
- 710 名前:名無しさん@お腹いっぱい。 [2008/04/21(月) 18:20:49 ]
- 多分、作りこまないと駄目だと思うんですが、駄目元で質問します。
`find .`の結果を各ディレクトリ毎に、 第1のソートキー:ディレクトリorファイルの別(ディレクトリが先) 第2のソートキー:更新時間の降順 でソートしたものが欲しいです。 ファイルブラウザとかだと、そういう表示が出来るので、 もしかすると、簡単におこなう方法があるのかな?と密かに期待してます。 宜しくお願いします。
- 711 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 18:56:59 ]
- 普通に考えたら出来る
- 712 名前:名無しさん@お腹いっぱい。 [2008/04/21(月) 19:01:20 ]
- >>711
結果をファイルに出力してもいいのであれば、 find -type dでループを回していけばやれるのはわかっているのですが、 作業ファイルを介さずにそのままwhile readで受け取れるくらい 簡単な方法がないかな?と思って質問させて頂きました。
- 713 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 19:12:16 ]
- 多分スクリプト言語使った方がいいと思う
- 714 名前:名無しさん@お腹いっぱい。 [2008/04/21(月) 19:19:38 ]
- >>713
ちょっとごめんなさい ディレクトリは名前順でもいいです。 当初>>710で書いたよりはずっと簡単に実現できます。
- 715 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 19:19:44 ]
- >>711
そういうことはお前の考えた結果を貼ってから家。
- 716 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 19:26:48 ]
- >>714
「ディレクトリが先」という条件さえなければ、 単に ls -latR で行ける。findすらいらない。 >>712 結果をファイルに出力する方法でやる方法がわかってるなら、 それをファイルに出力しない方式に書き換えることは多分できる。
- 717 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 19:31:02 ]
- >>710
GNU ls使えば、 ls -latR --group-directories-first で一発。
- 718 名前:名無しさん@お腹いっぱい。 [2008/04/21(月) 20:23:19 ]
- みなさんどうもありがとうございました。
結局(とりあえず)、 find -d でループを回して作業ファイルを作る方法にしました。 ディレクトリは名前順でファイルは更新時間降順にしました。 ちなみにGNU ls 5.21で--group-directories-firstはサポートされてませんでした。
- 719 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 21:04:47 ]
- find ... -print0|xargs -0 ...
と区切りをわざわざ^@にするのが推奨されてるのって何故なんですか?
- 720 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 21:13:18 ]
- 他の文字はファイル名に使われてるかもしれないから。
- 721 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 21:55:46 ]
- -print0|xargs-0を使うのは石器人。
現代人なら-exec utility_name [argument ...] {} +
- 722 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 21:57:15 ]
- いまさら-execはちょっと…という気分
気分だけね
- 723 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 22:08:08 ]
- >>722
お前、行末の「+」の意味知ってて発言してるのか?
- 724 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/21(月) 22:15:16 ]
- >>718
GNUコマンド群くらい最新にしとけよ。6.xなら使える。
- 725 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 02:59:08 ]
- >>724
バージョンアップできない(許可されない)環境って結構多いぞ。 (*nix系ならローカルに実行環境つくれば済む話だが)
- 726 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 07:04:01 ]
- >>725
もしそういう環境なら、GNU lsを入れること自体許可されないだろ。 (古いバージョンとは言え)GNU lsが入っているということは、 OS標準じゃないコマンドを自分でインストールしてもいい環境と考えられる。
- 727 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 10:39:16 ]
- システム構築時にGNU系を入れて構築、運用開始した後、
バージョンアップの費用(現システムの稼働確認費用)が認められないため、そのままってパターンが多い。 そういうトコだと、ローカルに新版lsをコピーしてくる方が(手続き的に)楽だったり。
- 728 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 12:30:34 ]
- >>710
タイムスタンプが、 2008-04-22 12:30 こういう形式で、 $6, $7にあると仮定すれば、 ls -l | sort -k 6,7 | sort -sr でいい。-sはstable sort。
- 729 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 13:27:05 ]
- >>728
それだと symbolic link が先頭に来てしまうので失格。
- 730 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 13:30:00 ]
- >>728
というか、せっかく sort -k 6,7 したあとで sort -sr したら 最初の sort -k 6,7 が無意味になってしまうし、全然ダメじゃん。
- 731 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 19:43:49 ]
- つ sort -srk 1,1
- 732 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/22(火) 19:58:42 ]
- >>731
>>729 失格。
- 733 名前:名無しさん@お腹いっぱい。 [2008/04/23(水) 15:40:13 ]
- Apache の mod_ext_filter モジュールを利用したスクリプトを作成しています。
Apache --標準出力--> script --標準出力 --> Apache を行うスクリプトにて、 Apache からの標準出力を $temp_file に書き出して主な処理をした後に cat $temp_file を行い Apache に返しているのですが、 #!/bin/sh temp_file=`mktemp` while read line do echo "$line" >> $temp_file done ファイル操作 cat $temp_file rm -f $temp_file 上記コードだと、HTML ソースに \ $ ` などが入っていた際に、 echo "$line" >> $temp_file で意図せぬ動作が起きてしまいます。 またファイルに書き出す事で処理速度の低下も考えられるので、 Apache からの標準出力(複数行)を変数に格納する方法はないかと思ったのですが、 どなたかご教授ください。
- 734 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/23(水) 20:08:40 ]
- >>733
それはシェルのreadの仕様だから仕方ない。 そもそも while readで読む必要ないだろ。 while do ... done の部分全部を、 cat > $temp_file に置き換えればよろし。
- 735 名前:733 mailto:sage [2008/04/23(水) 20:31:31 ]
- >>374
おぉ、色々と勘違いしていたみたいですね。 ご指摘の方法でやってみたところちゃんとできました。 すみません、ほんと有難うございます。
- 736 名前:733 mailto:sage [2008/04/24(木) 00:18:33 ]
- 733です。
度々すみません。 #!/bin/sh temp_file=`mktemp` cat > $temp_file ファイル操作 cat $temp_file rm -f $temp_file 確かにご教授いただいた上記コードで可能なのですが、 Apache からの標準出力をファイルに書き出さず、変数として処理する事は出来ないのでしょうか?
- 737 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/24(木) 00:55:16 ]
- そんなに速度が気になるなら他の言語でやったほうがいい
- 738 名前:733 mailto:sage [2008/04/24(木) 01:45:55 ]
- >>737
ありがとうございます。 色々試行錯誤してみます。
- 739 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/24(木) 06:52:22 ]
- >>736
その「ファイル操作」の内容が、 sed 's/hoge/boke/' < $temp_file だとすると、そもそもcatは2つとも要らない。 #!/bin/sh sed 's/hoge/boke/' ↑の2行だけでOK。 sedは、何も指定しないと標準入力から読んで標準出力に出すから。
- 740 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/24(木) 06:56:05 ]
- >>736
一旦変数に入れたいなら、 tmp=`cat` とする。これで変数tmpに入る。 参照する時は、 echo "$tmp" とする。シェルに特殊文字を解釈されないように" "を付けるのを忘れないように。
- 741 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/24(木) 19:36:45 ]
- >>739
返信ありがとうございます。 標準入力の内容によって条件わけがしたかったので、ご指摘の方法は断念しました。 >>740 返信ありがとうございます。おかげさまで出来ました。 一つ疑問が残るのですが、ダブルクォート (") は $ ` \ 以外を普通の文字として扱うと認識していますが。 # echo "`date`" Thu Apr 24 17:55:30 JST 2008 # cat sample.html <html> <body> `date` </body> </html> # cat filter.sh #!/bin/sh temp=`cat` echo "$temp" # cat sample.html | sh filter.sh <html> <body> `date` </body> </html> なぜ echo "$temp" では ` が普通の文字として扱われているのでしょうか? お恥ずかしい質問で済みません。
- 742 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/24(木) 19:38:59 ]
- 変数、サブシェルなどの展開は一度だけ。
再度展開したい時はeval。
- 743 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/24(木) 20:15:21 ]
- >>742
eval をさっそく調べ、勉強になりました。 ありがとうございます。
- 744 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 00:26:56 ]
- 質問させてください。
シェルスクリプトで16進数を2進数に変換するにはどうしたらいいでしょうか?
- 745 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 00:49:57 ]
- どうしてもシェルスクリプトというならこんな感じか。
最適なのはbc。sedだけでもできる。 h2b() { for h in `echo $1 | sed 's/\(.\)/ \1/g'`; do case $h in 0) echo -n 0000;; 1) echo -n 0001;; 2) echo -n 0010;; 3) echo -n 0011;; 4) echo -n 0100;; 5) echo -n 0101;; 6) echo -n 0110;; 7) echo -n 0111;; 8) echo -n 1000;; 9) echo -n 1001;; a|A) echo -n 1010;; b|B) echo -n 1011;; c|C) echo -n 1100;; d|D) echo -n 1101;; e|E) echo -n 1110;; f|F) echo -n 1111;; esac done echo }
- 746 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 00:54:10 ]
- >>755
あ、どうしてもってわけじゃないです。 コマンドとかありますか?何度もすいません。
- 747 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 01:17:50 ]
- bcで16進数を2進数に変換。
できそうでよくわからない・・・orz
- 748 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 01:18:21 ]
- bcならこんな感じかな、便利だね知らなかったよ。
echo "obase=2; ibase=16; $1" | bc
- 749 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 01:32:27 ]
- >>748
ありがとう。しかしながら 例えば 0xffffff00 これを10進数に変換したいと思い echo "obase=10; ibase=16; 0xffffff00" | bc とやってみましたがsyntax errorがでました・・・orz
- 750 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 01:40:21 ]
- 頭に0xは付けずに,それから大文字で書かないといけないっぽい.
- 751 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 02:03:41 ]
- >>750
なるほど。ありがとうございました。
- 752 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 06:48:02 ]
- >>749
bcなんか使わなくても printfで一発だろww $ printf '%d\n' 0xffffff00 4294967040
- 753 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 08:48:45 ]
- んっと、釣られとくけど、
志村ー
- 754 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 13:18:18 ]
- >>753
なにが釣りなのかわからないゆとりな俺にkwskたのむ シェルスクリプトのtmtowtdiな感じって好きだ
- 755 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 13:28:34 ]
- printf(3)は二進がないからなあ。
printf(1)の%bは違う意味だし。
- 756 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 13:35:12 ]
- >>775
欲嫁。 >>749 は 16進→10進の質問。 >>752 はそれに最適解を答えている。
- 757 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 22:01:10 ]
- 昨日質問した者です。ちょっと間違ってました。ごめんなさい。
正しくは ffffff00 これを 255.255.255.0 に変換したい。です。 これってできるのでしょうか?
- 758 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 22:09:13 ]
- 簡単だね
>>757 $ hex=ffffff00 $ printf '%d.%d.%d.%d\n' `echo $hex | sed 's/../0x& /g'` 255.255.255.0
- 759 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/25(金) 22:57:09 ]
- >>758
すごいなぁ。ありがとう。
- 760 名前:名無しさん@お腹いっぱい。 [2008/04/26(土) 12:50:24 ]
- >>758 これは(・∀・)イイ!! もれももらた
- 761 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/26(土) 16:59:52 ]
- よく読まずに余計な突っ込みした >>753 は今ごろ赤面ww
- 762 名前:名無しさん@お腹いっぱい。 [2008/04/28(月) 17:23:56 ]
- >>761
kannke-nexekedo お前のレスうざい
- 763 名前:名無しさん@お腹いっぱい。 [2008/04/29(火) 09:04:12 ]
- シェルで、拡張子の付いていないファイルを一発でワイルドカード指定するには
どうすればいいですか? あるいは、何かのオプション変更とかで、 * で、hogeとかだけにマッチして、 hoge.hog にはマッチしないようにして、 *.* とやった時だけ hoge.hogにマッチするようにしたいんです。
- 764 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 09:43:06 ]
- 一部シェル限定ならできる
一発でなくていいならできるようにはできる
- 765 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 11:18:22 ]
- >>764
kwsk
- 766 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 12:33:12 ]
- >>764 は、具体的な「やりかた」を書かない(書けない)知ったかの
>>680 と同一人物、に1俵。
- 767 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 12:39:25 ]
- >>765
シェルは何だ? ワイルドカード使うシチュエーションは?カレントディレクトリだけなのか? ファイルの表示ができればいいだけなのか?各ファイルに何かするのか? >>766 あいにく違うな 1俵よこせ
- 768 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 12:43:35 ]
- >>767
じゃなくて、逆にその「できるシェル」を教えて欲しい。 シチュエーション関係なしに、すべての場合において * が hoge.hogにはマッチしないようにしたい。
- 769 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 12:46:16 ]
- EXTENDED_GLOBつきのzshで*~*.*かな。
- 770 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 12:55:22 ]
- * 1個の動作を変えられるようなシェルはないかと思う
同じくzshで setopt EXTENDED_GLOB ls -d [^.]#
- 771 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 12:57:46 ]
- command.com
- 772 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 13:01:56 ]
- 少なくとも >>766 だけうざいな
- 773 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 13:50:40 ]
- シェルを秘密にしたいのだからエスパースレに行くべきだな。
全ての場合を見通して答えてくれるエスパー様(>>766)に任せよう。
- 774 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 13:58:03 ]
- できるシェルを教えてくれっていう質問だから、
シェルを秘密にしてるのとは違うかと
- 775 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 20:45:09 ]
- よく読まずに余計な突っ込みした >>773 は今ごろ赤面ww
- 776 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 21:08:40 ]
- >>775
お前のレスうざい
- 777 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 21:32:45 ]
- OSを秘密にしているのだから、エスパー様の出番だな。
余計な突っ込みした、知恵足らずの>>775は今ごろ赤面ww
- 778 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 21:41:31 ]
- シェルはOSには依存しないな。
余計な突っ込みした、知恵足らずの>>777 は今ごろ赤面ww
- 779 名前:名無しさん@お腹いっぱい。 [2008/04/29(火) 21:43:02 ]
- > シェルはOSには依存しないな。
> シェルはOSには依存しないな。 > シェルはOSには依存しないな。 > シェルはOSには依存しないな。 > シェルはOSには依存しないな。 > シェルはOSには依存しないな。
- 780 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 21:54:17 ]
- まあよくある願望とごっちゃにしたな
- 781 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:04:17 ]
- たとえば最近の例を引き合いに出すが、
>>757 の質問(OS不明)に >>758 が的確に回答してる。 どこにもOSに依存してるところはないな。 >>757 に対して「OSが秘密じゃ答えられない」なんていってる奴は 無知をさらけ出してる奴。OSがわかったところで答えられないだろう。
- 782 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:06:52 ]
- 全然関係ない事例を持ち出して
> シェルはOSには依存しないな。 > シェルはOSには依存しないな。 > シェルはOSには依存しないな。 > シェルはOSには依存しないな。 > シェルはOSには依存しないな。 > シェルはOSには依存しないな。 を誤魔化そうとする>>778憐れ。
- 783 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:08:34 ]
- 本件事例の
>>769 の回答は、OSには依存しないな。
- 784 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:17:34 ]
- 糞みたいな雑談でスレを延ばすなよ
コードで語れ
- 785 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:22:29 ]
- G Em7 Am7 Am7/D D7 G
- 786 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:23:36 ]
- >>769は誤回答。お題は「* で、hogeとかだけにマッチして、hoge.hog にはマッチしない」
- 787 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:25:33 ]
- OSに依存しない誤回答ですね。
- 788 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/29(火) 22:45:17 ]
- 誤解答を例示して
> シェルはOSには依存しないな。 を誤魔化そうと必死の>>778憐れ。
- 789 名前:名無しさん@お腹いっぱい。 [2008/05/02(金) 11:38:05 ]
- $ls
test1.jpg test10.jpg test2.jpg test3.jpg test4.jpg test5.jpg test6.jpg test7.jpg test8.jpg test9.jpg と1桁の数字からなる連番ファイルがあるときに $ls test0001.jpg test0002.jpg test0003.jpg test0004.jpg test0005.jpg test0006.jpg test0007.jpg test0008.jpg test0009.jpg test0010.jpg というように4桁の連番ファイルにリネームしたいのですが、 ご教授お願いします。
- 790 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:40:37 ]
- >>789
mv sed printf for これだけ調べればできる
- 791 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:41:07 ]
- 書き忘れた、
test10.jpg これ 1桁の数字じゃないよな
- 792 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:43:03 ]
- >>789
環境依存かつ汎用性ナシだけど、 おれならこうやっちゃう。 $ for i in {1..9}; do mv test$i.jpg test000$i.jpg; done $ mv test10.jpg test0010.jpg
- 793 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:49:01 ]
- >>789
#!/bin/sh for file in *.jpg do num=`expr $file : '[^0-9]*\([0-9]*\)'` base=`expr $file : '\([^0-9]*\)'` num=`printf %04d $num` echo mv $file $base$num.jpg done
- 794 名前:789 mailto:sage [2008/05/02(金) 11:52:46 ]
- >>791
最初1桁の例だけ書いてたんで、 2桁も混じっているということを書き忘れました。 >>792 $ for i in {1..9}; do mv test$i.jpg test000$i.jpg; done $ for i in {10..99}; do mv test$i.jpg test00$i.jpg; done ってかんじですかね。ありがとうございます。
- 795 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:52:51 ]
- >>790
具体例を示さない奴は黙ってろ。あと、sedよりexprの方がいいな。
- 796 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:53:29 ]
- >>794
>>793
- 797 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:55:18 ]
- 3桁のときは、0を一つ、2桁の時は、0を2つ
一桁のときは、0を3つってつけてけばいいねん sedだけでできる
- 798 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:56:45 ]
- >>797
そんなことをしなくても >>793 で一発。
- 799 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 11:57:56 ]
- でしたね^^
解決したようで
- 800 名前:793 mailto:sage [2008/05/02(金) 12:09:21 ]
- sedだけでやるならこうかな
↓ #!/bin/sh for file in *.jpg do new=`echo $file | sed 's/[0-9]/0000&/; s/[0-9]*\([0-9][0-9][0-9][0-9]\)/\1/'` mv $file $new done
- 801 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 12:11:08 ]
- ごちゃごちゃしてるなぁ
- 802 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 12:13:48 ]
- そう思うならprintfの方がすっきりする
- 803 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 12:16:28 ]
- カレントディレクトリ配下で自分が所有者のファイルを探してすべて消したいのですが、
どのように書けばいいですか?
- 804 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 12:17:35 ]
- find . -user `whoami` -exec rm -f {} \;
- 805 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 12:18:06 ]
- ありがとうございます
試してみます
- 806 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 20:11:05 ]
- >>795
> >>790 > 具体例を示さない奴は黙ってろ。あと、sedよりexprの方がいいな。 お前が真っ先に黙れ。
- 807 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 12:08:46 ]
- 若干スレ違いですが、
シェルスクリプラーなみなさんが詳しそうなので質問させてください。 unix,linuxで、 カーネルの脆弱性なんかでrootに権限昇格の可能性があるのって 特定コマンドを利用不可にしていたら難しい、 なんてことあるでしょうか? また、特定コマンドを利用した回数、利用したユーザ、 とか調べる方法ってないでしょうか?
- 808 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 13:02:50 ]
- つ BSD acct & lastcomm
- 809 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 13:55:52 ]
- >>807-809
具体例を出さない書き込みは禁止。
- 810 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 15:43:33 ]
- 若干どころじゃなくスレ違い。
- 811 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 15:47:30 ]
- 「シェルスクリプロ」って何ですか?
- 812 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 15:57:16 ]
- シェルスクリプる
- 813 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 08:56:10 ]
- a 5 9 2
b 7 3 6 c 5 3 2 d 8 3 7 e 4 4 4 のようなテキストファイルから a 5 9 2 16 b 7 3 6 16 c 5 3 2 10 d 8 3 7 18 e 4 4 4 12 のように行の値の合計を右端に出力したいのですがどうしたらできますか? awk '{print $1,$2,$3,$4,$1+$2+$3}' のようにではなく、列の値の数が3でなくても対応できるようにしたいです。
- 814 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 09:01:46 ]
- >>813
簡単だね。 #!/bin/sh while read line do set $line shift sum=0 for i in "$@" do sum=`expr $sum + $i` done echo "$line $sum" done < file
- 815 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 09:20:27 ]
- 適当にがんばってみたらできたました。
ありがとうございました。 awk '{sum=0;for(i=1;i<=NF;i++)sum+=$i; print $"$i",sum}' test.txt
- 816 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 09:38:50 ]
- >>815
ちゃんと「シェルで」答えてくれた >>814 に礼もなしで 自己解決かよ。 しかも、awkでやるならスレ違い。awkスクリプトはシェルスクリプトにあらず。
- 817 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 09:41:33 ]
- おいおい、 >>815 の awkだと間違ってるぞ。
1列目の文字がたまたま数値的に 0 と評価されたら 結果的に正しく動いてるように見えるけど、 1列目に数値と解釈される文字があったらアウト。 このスレ的には >>814 が正解。
- 818 名前:名無しさん@お腹いっぱい。 [2008/05/06(火) 20:45:33 ]
- unix初心者ですが、シェルについて教えてください。
if文で、if〜then〜else〜endif を使用しています。 if文の判定は、ファイル有無の判定です。 判定対象のファイルを正規表現で記述すると、elseまで辿り着きますが、 メタキャラ"?"で判定すると、elseまで辿り着かず、 「照合パターンに合いません」 と出力され終了してしまいます。 シェルの構文は下記の通りです。 #!/bin/csh if ( -f /tmp/a?a.log ) then echo "ファイルが見付かりました" else echo "ファイルが見付かりませんでした" endif メタキャラを使用して、ファイル判定をする方法を教えて頂けませんでしょうか。 宜しくお願い致します。
- 819 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 20:50:12 ]
- >>818
cshでスクリプトを作ってはいけません。 どうしてもcshが良いなら独学でどうぞ。
- 820 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 21:05:42 ]
- >>818
#!/bin/sh if [ -f /tmp/a?a.log ]; then echo 'ファイルが見付かりました' else echo 'ファイルが見付かりませんでした' fi
- 821 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 21:15:22 ]
- #!/bin/sh
[ -f /tmp/a?a.log ] && { echo 'ファイルが見付かりました' } || { echo 'ファイルが見付かりませんでした' }
- 822 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 21:19:42 ]
- #!/bin/sh
s=; [ -f /tmp/a?a.log ] || s='せんで'; echo 'ファイルが見付かりま'"$s"'した'
- 823 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 21:27:57 ]
- s=;(</tmp/a?a.log)2>/dev/null||s='せんで';echo 'ファイルが見付かりま'"$s"'した'
- 824 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 22:16:35 ]
- ゴルファーがいるw
- 825 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 22:21:36 ]
- すんません、検索したけど見つからなかったので教えてください。
bash + awk, bc, perl あたりで、小数部が3桁の計算をして、 その結果を変数に格納してます。その後、その変数の値を 絶対値にして返してくれるコマンドはありませんか? 上記のbash, awk, bc, perl あたりでできれば一番良いのですが。 よろしくお願いしまつ。
- 826 名前:名無しさん@お腹いっぱい。 [2008/05/06(火) 22:44:52 ]
- > 820、821
ありがとうございました。 Bシェルで作成します。 … 作成したのですが、複数ファイルがマッチした場合、 ファイル名: binary operator expected が表示され、マッチしたにも関わらず、elseが適用されます…。 ご存知でしたら、複数マッチしても、真となるような方法を教えて頂けませんでしょうか。
- 827 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 22:58:20 ]
- >>825
マイナス符号を取ったらいいだけだろ $ var1=-123.456 $ expr $var : '-*\(.*\)' 123.456 $ var2=123.456 $ expr $var : '-*\(.*\)' 123.456
- 828 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:01:42 ]
- >>826
#!/bin/sh if ls /tmp/a?a.log 2>/dev/null; then echo 'ファイルが見付かりました' else echo 'ファイルが見付かりませんでした' fi
- 829 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:14:46 ]
- >>825
$ var=-123.456 $ echo ${var#-} 123.456 $ var=123.456 $ echo ${var#-} 123.456
- 830 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:22:26 ]
- bash依存乙。
- 831 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:29:02 ]
- だからksh由来だと何度(ry
まあテンプレにもあるようにsh以外ならそう明記すべきだな。
- 832 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:40:42 ]
- カレントディレクトリ配下のファイルにsedをかけたいのですが、
どのようにしたらできますか?
- 833 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:50:19 ]
- >>832
要エスパー質問だなw for file in * do sed 's/hoge/hage' "$file" > "$file".new done てことをやりたいのか?
- 834 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:54:09 ]
- >>832
OSやシェルの種類/バージョンは秘密ですか? それを秘密にしたままでは誰も答えられないでしょう。 このレス以外、レスは0件でしょう。
- 835 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 11:58:42 ]
- OSはわかりません。(アウトソーシングでunameが使えないため)
ShellはBashです。 $ bash --version GNU bash, version 3.1.17(1)-release >>833 それだと、カレントディレクトリのファイルしか置き換えできません。 カレントディレクトリ配下をすべて置き換えたいです。 また、置き換えしたいので、.newファイルを作成したいのではないです。 (名前を変更すればいいだけですが。)
- 836 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 12:02:49 ]
- >>835
find . -type f -exec sed -i 's/hoge/hage' {} \;
- 837 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 12:06:32 ]
- >>834
OS関係ないだろw すでに適切な回答がなされた後で再読み込みもせずに余計なことを書いた >>834 は今ごろ赤面。
- 838 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 12:09:01 ]
- >>835
「カレントディレクトリ配下」という言葉の使い方を間違ってます。
- 839 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 14:40:31 ]
- >>832, >>834-835, >>837-839
具体例を出さない書き込みは禁止。
- 840 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:20:43 ]
- >>838
配下っていう意味的にはあってるでしょ
- 841 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:21:36 ]
- >>840
合ってない。直下のディレクトリのみ指す用語。
- 842 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:24:34 ]
- >>841
配下って言うのは、傘下って意味。 参加は直下以外も指す。 ダイハツの下もTOYOTAの傘下でしょ。
- 843 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:39:44 ]
- >>842
勝手に言葉を定義されても、困るのですが。
- 844 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:46:27 ]
- その人の支配に属していること。また、その者。手下。部下。
- 三省堂提供「大辞林 第二版」より 類語: ⇒ 関連語 てした【手下】 ⇒ 関連語 さんか【傘下】 ⇒ 関連語 したやく【下役】 - YAHOO辞書より
- 845 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:47:48 ]
- 一言「サブディレクトリ以下も含む」と付け加えれば意味が通じたのに、
>>832 は「サブディレクトリ」という用語を知らないに1票。
- 846 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 18:52:45 ]
- 例えば、
/aaa/bbb というディレクトリがあって、 touch /aaa/bbb/ccc.txt ってやりたい時、 bbbディレクトリに書き込みパーミッションがあれば、 aaaディレクトリは書き込み禁止であっても書き込める。 よって、bbbはaaaに支配されているわけではない。 aaa自体の書き込みパーミッションは、 aaa直下に作成するファイルにしか効かない。 つまり、bbbはaaaの支配には属していない。
- 847 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:10:11 ]
- 基本的には親ディレクトリを削除したら下は全部削除されるんだから支配されてるでしょ。
孫請け会社が親とは直接的なやり取りがないのとおなじ
- 848 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:19:12 ]
- リンク
- 849 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:19:17 ]
- >>846 >>847
だから、勝手に言葉を定義されても困るのですが。 >>845 「再帰的(reccursive)に」というキーワードがありますね。 よくあるオプションは-rですか。
- 850 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:21:22 ]
- -Rだな
- 851 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:33:05 ]
- >>849
言葉を定義してるはあなたも同じでしょ。 YAHOO辞書に従うと、類義で傘下があるから傘下としてはただしいんだし。
- 852 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 19:42:10 ]
- >>851
いや、してませんけど。 言葉は流動的なもので、大辞林や広辞苑にこう書かれている、としても、 それがすべての場合に同様に正確にあてはまるわけではないのは、日常の 言葉のやりとりで体得していないのですか? プログラム言語じゃあるまいし。
- 853 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 20:20:38 ]
- >>847
逆。下のディレクトリがあると親ディレクトリは削除できない。 そういう意味では子に親が支配されてる。 あと、NFSとかnullfsでループバックマウントする場合、 子のディレクトリを別の場所にマウントすると まさに親ディレクトリに関係なく子のディレクトリにアクセスできる。 ディレクトリ間は単にリンクしあっているだけであって、支配関係はない。
- 854 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:40:38 ]
- >>852
指標にはなるでしょ。 根拠をしめしてるだけ、ちゃんと示してる。 >>853 削除できないようにしてるだけ。
- 855 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:59:03 ]
- いったいなんのスレだここはw
- 856 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 05:17:48 ]
- こういう宗教戦争があるのがUNIX板のいいところ
- 857 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 08:25:57 ]
- どうでもいいが、>>836 で正解もらってるのに、
>>835 = >>832 から礼の一言もなしに書き逃げしてるなw
|

|