シンボリックリンクの一括張り直しスクリプト
一年半前位前に、bashでちょろっと作ったスクリプトに致命的なバグがあったので、Pythonで同じ結果を得ることに。(いや、これも同じバグを孕んでるんだけど。(^^ゞ)
【ソース:ln2.py】
未だにちゃんと調べてないのだけど、コマンド一発でシンボリックリンクの張り替えって
ln -nfs <source> <dest>
で出来るらしいけど、なんか元ファイルを消してから作り直しちゃってる。(^^ゞ
まぁ、やりたい事がサクッとできたから結果オーライで。(^^)
最近は簡単な処理を行う時にはPythonで書くようにしている。REST API叩く実験とか簡単な事だけだけど。
(あと、ここでは書かないようなアングラなソフトを作る時とかw)
【追記】
lnコマンドに「--force」があるのを知らなかったという…(´・ω・`) 情弱や。
【ソース:ln2.py】
#!/bin/sh
# coding: utf-8
""":"
exec python "$0" {1+"$@"}
"""
__doc__ = """The above defines the script's __doc__ string. You can fix it by like this."""
# おまじない終わり
import os
from subprocess import call
import glob
# とりあえずハードコートで指定したディレクトリをターゲットに
target_path = '/home/hoge/contents/data'
# メイン
file_list = [os.path.basename(r) for r in glob.glob('*')]
for file in file_list:
print file
# 元ファイルの削除
os.remove(file)
# 張り直しのパス
source = target_path + '/' + file
call(['ln', '-s', source, '.'])
未だにちゃんと調べてないのだけど、コマンド一発でシンボリックリンクの張り替えって
ln -nfs <source> <dest>
で出来るらしいけど、なんか元ファイルを消してから作り直しちゃってる。(^^ゞ
まぁ、やりたい事がサクッとできたから結果オーライで。(^^)
最近は簡単な処理を行う時にはPythonで書くようにしている。REST API叩く実験とか簡単な事だけだけど。
(あと、ここでは書かないようなアングラなソフトを作る時とかw)
【追記】
lnコマンドに「--force」があるのを知らなかったという…(´・ω・`) 情弱や。
コメント
コメントの投稿
« すくえるものは ほかになし l Home l 腰痛 »