tcshでコマンドを実行した後、どのファイルに正確にアクセスしたのか、どうすればわかりますか?

tcshでコマンドを実行した後、どのファイルに正確にアクセスしたのか、どうすればわかりますか?

コマンドの最初の単語ではなく、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

おすすめ記事