コマンドの最初の単語ではなく、2番目の単語を完成させるためtcsh
にどのファイルを読み取る必要があるのか、どうすればわかりますか?TAB
whereis complete
ファイルを表示するために使用できるパスを知っていますが、*.1.gz
どのファイルが使用されているかを言うほど具体的ではありません。
一方、 を使用すると、locate complete
何百ものファイルのリストが表示されますが、そのほとんどは実行可能ではありません。
答え1
私は使用しますstrace
セッション全体をキャプチャし、スクリプト出力に移動してキーボードの読み取りを取得し、その後進行中のすべての呼び出しを見つけます。これはLinuxや他のシステムで動作します。 BSDには同様の兆候があります(MacOSは異なります)。
しかし、tcshはそうではないかもしれません。開くファイルですが、ディレクトリに一覧表示されます。 straceもこれに役立ちます。たとえば、クイックチェックでは、次のように現在のディレクトリを開くことができます。openat
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
その後、使用lstat
興味のある項目が何であるかを判断する機能(ソート、ファイル、ディレクトリなどを決定できるようにする):
lstat("xterm.desktop", {st_mode=S_IFREG|0444, st_size=1921, ...}) = 0
これ「。」現在のディレクトリです。プログラムはファイル、ディレクトリ、シンボリックリンクなどのディレクトリエントリのリストを読み込みますが、エントリは並べ替えられません(そして次のものが使用されるまでタイプはわかりません)。stat
/lstat
来て聞いてください)。
locate
そしてwhereis
ファイルの検索に同じルールを使用しないため、有用なデータは表示されません。tcsh
。