명령의 첫 번째 단어가 아닌 두 번째 단어를 완성하기 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
.