strftimeの%aで曜日を出力するのはやめた

localeを使ってみたりいろいろと試してみたけれど、無理にstrftimeの%aで曜日を漢字で出力するのは今ひとつだった。

ディストリビューションによって挙動が変わったり、OSのメジャーアップデートで文字化けしてみたり。それぞれに事情はいろいろあって、単にバグだったり、必要なパッケージが変わってたりと、まあ仕方ないかなあと思うことも少なくない。

ああでもないこうでもないと、忘れてしまっても問題ない方法を考えてみた。これでいいのだ。 続きを読む

-(ハイフン)で始まるファイルがrmで消せない

ちゃちゃっとWEBサーバの出力を確認しようとしてwgetの出力を標準出力にするつもりを、手が滑って”–”としてしまった。結果、”–”というファイルができてしまった。
$ wget http://localhost/ -O —
削除しようにも、rm –ではシェルがオプションと解釈してしまって削除できない。
どうすべぇと調べてみたら、”–”の後にファイル名(–)を指定するといいみたい。

$ touch -- -cantremove
$ ls
-cantremove
$ rm -cantremove
rm: invalid option -- 'c'
Try `rm ./-cantremove' to remove the file `-cantremove'.
Try `rm --help' for more information.
$ rm *
rm: invalid option -- 'c'
Try `rm ./-cantremove' to remove the file `-cantremove'.
Try `rm --help' for more information.
$ rm -- -cantremove
$ ls
$ 

を、rmのメッセージによると、「rm ./- 」でも良かったんだ。
まだまだ知らないことがたくさんある。

Bashシェルスクリプトで自分の絶対パスを取得

2011.8.25追記:

そりゃあありますよね。ターゲットのプラットフォームで標準で使えるようならば可読性も高いしこちらの方がよいと思います。

僕はこれから作るものはたぶんreadlinkに乗り換えます。masaruyokoi様ありがとうございました。

コメントで教えていただきました。

masaruyokoi on 2011年8月25日(木曜日) at 12:06 said
readlink -f や -e を使うと良いですよ。
Debian や FreeBSD では realpath というコマンドもあります。

以下はオリジナルエントリです。

シェルスクリプトで自分の絶対パスを知る方法はこんな方法しかないんだろうか?

#!/bin/sh
D=`dirname $0`
echo `cd $D;pwd`

Pythonだとしょっちゅう書いてるアレ。

#!/usr/bin/env/ python
from os import path
print(path.abspath(path.dirname(__file__)))

お、こういう書き方があるのか。

#!/bin/sh
echo $(cd $(dirname $0);pwd)