自堕落記 / My falling days
1997 [ 7(1) | 7(2) | 8 | 9 | 10 | 11 | 12 ]
1998 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
1999 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
2000 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
2001 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
2002 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
2003 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
2004 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
2005 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
2006 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ]
(最新の内容が過去日記に反映されるまで、最大10分かかります)
過去日記検索 by Google
12月22日(金)

Cygwin tips

Cygwin で日本語のディレクトリに cd したいことというのはときどき出てくる. そこに日本語をそのまま打ち込めないことの方がたぶん多いだろう.となると, 「コマンドでディレクトリ名を取り出してそれを cd に渡したい」というのが Unix 使いの人情である.と,その前に,そもそも ~/.zshenv で

setopt printeightbit

していないとそもそも日本語ディレクトリが見えないはずだ.zsh なのは仕様と しておく.さて,ls でリストを出し,その下から n 行を切り出す tail と, 上から n 行を切り出す head を使えば,どっちかを 1 にすりゃいいんじゃね, ということになる.上から5番目を使うとすれば

% ls -1d | head -5 | tail -1

この結果を cd に渡せばいいんじゃない,と.

% cd `ls -1 | head -5 | tail -1`
cd: no such file or directory: ^[[34;42m日本語^[[0m

……あれ? ダメだ.nkf かけてもダメだぞと.これは, ls="ls --color" に alias されていたから.ls --color=none として

% cd `ls -1 --color=none | head -5 | tail -1`

でOK.

別解

エクスプローラから,アルファベットでショートカットを作っておく. Cygwin からはショートカットはシンボリックリンクとして扱われるので (というか Cygwin はシンボリックリンクをショートカットとして実装している と言うべきか),かんたんに cd できる.

12月19日(火)

xargs

xargsをまともに使うのが久しぶりだったのでメモ.

大量のファイルを消す

10万個オーダーのファイルを消すときに,

% rm *

とかやるとシェルが引数リストを渡すときに長すぎて死ぬ.ので,

% ls | xargs rm

とする.

大量のファイルがあるのを数える

同様に10万個オーダーのファイルが何個あるのか数えるとき,

% ls ./????? | wc -l

とやるとまた引数が長すぎて ls できない.

% ls | xargs wc -l

とすると,xargs はパイプに受け取ったのを標準入力 ではなく引数リストに渡すので,wc -l 1 2 3 4.... とやることになる. そのためファイルの個数を数えられない.

% ls (-1) | wc -l

の方が正解.

Meadow と Cygwin

Meadow から Cygwin のシェルを呼び出すのにかなり悩んだので書いておく.

環境変数PATHの設定

これが必要だということを分かっていなかった.環境変数PATHに,d:\cygwin\bin (筆者の場合)を 設定しておく.Cygwin シェルの中から which bash や which zsh をすると,/usr/bin/bash や /usr/bin/zsh が返ってくるのだが,これらは d:\cygwin\usr\bin の下にはなく,d:\cygwin\bin の下にある.まずこれが必要.

.emacsの設定

Meadowから,~/.emacs (でも .emacs.el でもいいが) で

;; ;;; Cygwin の zsh を使う場合
(setq explicit-shell-file-name "zsh.exe")
(setq shell-file-name "sh.exe")
(setq shell-command-switch "-c -i") 

と書いておく.こっちの設定はよく見つかる.


この日記の更新状況は 筑波朝日奈アンテナ, ぐりにっちくんはいぱー, SFC Antenna, Taro Diary Links , ONLY, MetaBaboo , Ruri-Ruri Antenna, Antenna@hikita.org, 遠藤避難所, なつみかんによる日記アンテナ by chidori, NetWatch , やんてな, 偽善者あんてな, 鉱石ラジオ - lapis's Antenna (simple), 千衣アンテナ, huggin Diary checker, chikoのアンテナ (simple), paina82のアンテナ (simple), Albaのアンテナ (simple), ceekzのアンテナ ( simple), Rise and Shine で知ることができます(被捕捉認識順).
(1次アンテナ(自分自身のエージェントが更新時刻を取得しに来ているもの)のみ を掲載しています.アンテナデータを集計している*だけ*のアンテナは掲載して いません.)

メニューへ
Any comments will be welcome at takot+web at sfc dot keio dot ac dot jp