Memo/Linux/symlink

https://dexlab.net:443/pukiwiki/index.php?Memo/Linux/symlink
 

シンボリックリンク(symbolic link/symlink)


シンボリックリンクの相対パスを自動解決

  • 環境
    • CentOS 7
    • macOS High Sierraのlnには「-r」オプションは無い。BSD系には無いかも。
  • 検証用のディレクトリ構造を作成
    mkdir -p dir1/dir2
    cd dir1
    touch dir1_file
  • 「-r」オプションで相対パスを自動解決
    ln -s -r dir1_file dir2/
    ls -l dir2/
    dir1_file -> ../dir1_file # dir1_fileへの相対パスが自動生成されている

シンボリックリンクの置換

  • -n: ディレクトリのため必要
  • -f: 強制作成
    ln -nfs src dest

シンボリックリンク先が同じかのチェック

  • test -ef を使う
    ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    test /usr/share/zoneinfo/Asia/Tokyo -ef /etc/localtime
    echo $? # 0

シンボリックリンク先のパスを取得

  • readlink を使う。-fで常に絶対パスを取得
    ls -l /usr/java/
    合計 4
    lrwxrwxrwx. 1 root root    6  95 11:15 2012 default -> latest
    drwxr-xr-x. 2 root root 4096  95 11:07 2012 jdk-1.7.0
    lrwxrwxrwx. 1 root root    9  95 11:15 2012 latest -> jdk-1.7.0
    
    readlink /usr/java/default
    latest
    
    readlink -f /usr/java/default
    /usr/java/jdk-1.7.0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-30 (火) 16:40:16 (18d)