ホーム » 「find」タグがついた投稿

タグアーカイブ: find

ワイルドカードはいつ開く?

Unixを使っていると、ちょっと不思議に思う瞬間というのがある。たとえばこんなときだ。

scp remote.host:some/path/* .

このコマンドの意図は明確だ。リモートホストの、ホームディレクトリのとあるディレクトリにあるファイルを全部コピーしたいのだ。だが、これはどうして正しく動作するのだろう。そもそも*はだれがどのタイミングで展開してくれるのだろうか。

932

Unixでは、ワイルドカードはshellが開く。コマンドは、ファイル名に展開された後のリストを受け取る。ワイルドカードが100個のファイルにマッチすれば、コマンドは100個のファイルを引数として受け取ることになる。さて問題は上記のscpの場合だ。scpはローカルのファイルシステムではなく、リモートのディレクトリを読み取らなければならない。このような場合はどうなるのだろうか。そもそも、scpを起動するとき、shellはどういう動作をするのだろう。

[続きを読む]