Cygwin + MinGW + GCC 相談室 Part 8 (987レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
27
(1): デフォルトの名無しさん [sage] 2014/12/26(金) 21:04:32.27 ID:OP/Bn95j(1) AAS
Wikipediaに書いてあるじゃん

外部リンク:ja.wikipedia.org

まあ要するにコンパイルフラグをいじらなくて済むという話では
60: デフォルトの名無しさん [sage] 2015/02/17(火) 21:25:51.27 ID:d+hn81Dl(1) AAS
Mingwで/etc/fstabをいじらないとautotoolsが動かないなんて初めて知ったわ!

しかも/でlsしても表示されないとかわかりにくw
219: デフォルトの名無しさん [sage] 2016/08/06(土) 07:02:28.27 ID:dEHOI8+v(1) AAS
ふーん、で?
444: デフォルトの名無しさん [sage] 2019/02/28(木) 17:27:01.27 ID:Ux/nkXD6(3/3) AAS
ち、紛らわしい
576: デフォルトの名無しさん [sage] 2019/09/03(火) 16:24:26.27 ID:fy59PR5b(1) AAS
9.2.0 Rev2 でPCHのエラーが出なくなった。
597: デフォルトの名無しさん [] 2019/11/15(金) 14:11:12.27 ID:L6hfSVpN(1) AAS
>>595
595(2): デフォルトの名無しさん [] 2019/11/10(日) 23:46:15.76 ID:vZIjc/J6(1) AAS
長期間更新がありませんが何か支障があるのでしょうか・・
ないない
619
(1): デフォルトの名無しさん [sage] 2019/12/23(月) 23:39:27.27 ID:IO6RyZUn(6/7) AAS
>>618
618(1): デフォルトの名無しさん [sage] 2019/12/23(月) 22:27:33.69 ID:nMe23UdH(1) AAS
>>615
何をしようとしているか大体分かった。
・/cygdrive/d/dev/debug はシンボリックリンクで /cygdrive/d/test/debug を指すと仮定
・/cygdrive/d/dev/some_file があると仮定
このとき
・まずcd /cygdrive/d/dev/debugする
・次にcp ../some_file .するとファイルが無いと言われる
ということだと思う。もしそうならそれがUNIX系では普通。LinuxやMacでもそうなる。

これは、cdした時点で既にカレントディレクトリが/cygdrive/d/test/debugに移っているからで、cpは/cygdrive/d/test/some_fileを読もうとしているために起こる。つまり
>本来はシンボリックリンクはカレントと共に使用される。
がUNIX的には正しくない。

実際の挙動としては、
・UNIXの場合、カーネル的にはカレントディレクトリはあくまでもディレクトリで、シンボリックリンクをパスの途中に含むことはできない
・cd ..でもといたディレクトリに戻るのはbashがシンボリックリンクを本当のデイレクトリのようにエミュレーションしているから(set -Pで切れる)
・これは基本的には内部コマンドのcdやpwdに対してのみできることで、外部コマンドのcpやlessに対してはできない(引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない)
・シェルはPWD環境変数にシンボリックリンクを含むロジカルなカレントディレクトリを出力するので、これを見るようにすれば原理的には外部コマンドもエミユレーションに対応できる(危なっかしいので普通はしない)

WindowsのシンボリックリンクはUNIXと違ってOS自体がシンボリックリンクを含むカレントディレクトリを扱っているようだが、CYGWINはUNIXに合わせていると考えられる。
こちらの状況は正しく伝わっており、君の言っていることも正しい。
こちらも615を書いた後、遠い昔にシンボリックリンク周りでトラブった記憶があり、
あれはなんだったかな?と思っていたところだった。

つまりbashで上手く誤魔化していてくれているわけだ。
ではtcshは?と確認したが、こちらもsymlinks変数で誤魔化し方を調整出来るようになっている。
外部リンク[html]:linuxjm.osdn.jp
結果、Cygwinとしては仕様通り、UNIXは糞仕様(≒仕様バグ)だな。

突っ込む必要はないと思うが、
> (引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない)
これはよく分からない。
bashがコマンドに引数を渡すときにあらかじめシンボリックリンク周りを解決していたら、どういう問題が発生する?
というかtcshだとsymlinks=expandに設定したらそうなるらしい。
今回で言えば、
MyMachine@MyName /cygdrive/d/dev/debug
$ cp ../some_file .
を cp /cygdrive/d/dev/somefile /cygdrive/d/dev/debug として実行すれば問題ないはず。
(.を展開する必要はないかもだが)
既存シェルスクリプトの互換性が無くなるだけなら仕様バグでした、残念でした、でしかなく、
後発のwindowsでは修正されているということになる。
シンボリックリンクを辿って、その上の「論理的ではない、物理的上位ディレクトリ」を辿る必要がある使い方なんて無いはず。

なお上記man of tcshのsymlinksの最後の
> > cd ".."; echo $cwd
> /tmp/from
> > /bin/echo ..
> /tmp/to ←これがよく分からん、/tmpではなくて?あるいはコマンドが .. ではなく /bin/echo . なら納得だが
> > /bin/echo ".."
> ..
分かれば出来れば解説よろしく。
690: デフォルトの名無しさん [sage] 2020/04/28(火) 18:20:54.27 ID:7TaGv6sC(3/4) AAS
>>689
689(1): デフォルトの名無しさん [sage] 2020/04/28(火) 18:17:52.10 ID:eCWBo+Hl(1) AAS
色々と混ぜたいからホームディレクトリを一緒にするんだろ
そうじゃなければ最初から分けとけばいいだけの話だ
「色々」と混ぜたいならその「色々」だめを混ぜればいいじゃん
全部混ぜる必要はない
780: デフォルトの名無しさん [sage] 2020/09/22(火) 19:37:32.27 ID:CCoUpWrp(1) AAS
今時mingwはmsys2のを使っときゃいいんだよ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s