0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

シンボリックリンクが貼れなかった件

Last updated at Posted at 2019-09-30

なにがしたい

  • データを保存しているHDDでシンボリックリンクを作成できなかったことをメモする
  • 原因も根本的な解決法も不明

まとめ

  • カレントディレクトリがHDD上の時、lnが使えなかった
  • カレントディレクトリをSSDにしたら使えた

環境

  • PC構成:OS用SSDとデータ用HDD
  • ln (GNU coreutils) 8.25

状況

発見直後(HDD)

  • pythonのos.symlinkでシンボリックリンクを作成しようとしたところ、not implementedと怒られた
REPLから確認したとき
>>> import os
>>> os.symlink("a.py", "b.py")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 38] Function not implemented: 'a.py' -> 'b.py'

バージョンの問題か?

  • pyenvで2.7.15を使っても同じエラーが再現された
  • anaconda3-5.3.1でも同じ。

pathlibからならできたりしないだろうか…

  • そんなことはなかった
  • a.symlink_to(b)

もうこうなったらsubprocessでln -sを呼んでしまえ

  • 呼べなかった
  • subprocess.call("ln -s a b")

ln -sをREPLで実行してみる

  • 関数は実装されていません???
実装されていません
$ touch a
$ ls
a
$ ln -s a b
ln: シンボリックリンク 'b' の作成に失敗しました: 関数は実装されていません

ディスクを変えて実行したらなんか動いた(SSD)

  • SSDで同じことをすると関数が実装されていた(ほっとした)

一応確認したこと

  • できるパターン
    • ln -s /SSD/a /SSD/b
    • ln -s /SSD/a /HDD/b
  • できないパターン
    • ln -s /HDD/a /HDD/b
    • ln -s /HDD/a /SSD/b

本当はもう少し調べたいこと

  • HDDの権限周り
  • lnのコード
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?