나는 종종 다음과 같이 특정 기호에 대한 코드베이스를 찾아야 하는 경우를 발견합니다.
find src/galio -not -path './src/stapi-sdk/apilib/* -regextype posix-extended -iregex '.*(\.hpp|\.hxx|\.cpp|\.cxx|\.h|\.c|\.ma?k|\.sh|makefile)' | xargs egrep --colour=always -Hn 'NUM_EXTERITY_FLAGS' | less -R
find
/결합에는 grep
꽤 오랜 시간이 걸릴 수 있으며 전체 체인을 백그라운드에 두고( Ctrl- Z및 사용 bg
) 나중에 다시 돌아와서 결과를 확인하고 싶습니다.
그러나 전체 작업을 백그라운드로 전환한 후 전체 작업이 즉시 다시 "중지"됩니다 bg
. 해결책이 있나요?
감사해요
답변1
screen
이런 상황에서는 추천하고 싶습니다. (또는 가능하다면 다른 창에서 명령을 실행할 수도 있습니다.)
분리된 세션을 시작하려면 를 입력하면 됩니다 screen
. 그런 다음 명령을 입력하되 &
배경으로 설정하지 마십시오. 실행 중인 세션을 분리하려면 Ctrlathen을 사용하세요 . 기존 세션을 나열하고 다시 연결하는 d데 사용됩니다 .screen -ls
screen -r
답변2
검색 속도를 줄이는 두 가지 문제는 파이프 대기와 읽기를 위해 stdout/error를 여는 것입니다. 일반적인 작업에서는 전체 화면을 채울 만큼 적은 양의 내용을 읽은 후 다음 페이지에 도달할 때까지 읽기를 중지합니다. 파이프에서 읽는 중이고 파이프에 쓰는 프로그램이 파이프 ID가 가득 차서 파이프를 읽고 쓰기가 다음 페이지를 채울 만큼 느려질 때까지 대기 상태에 있다는 것을 알아차리지 않는 한 잘 작동합니다. 이 동작을 줄이는 가장 쉬운 두 가지 방법은 존재하지 않는 것을 검색하거나 표준 입력의 크기를 계산하는 것입니다. 둘 다 전체 파일을 읽습니다. 다음 문제는 덜 제어하려면 키보드로부터 명령을 받아야 하기 때문에 읽기 위해 표준 출력이나 표준 오류를 열어준다는 점이다. 이것은 이상하지만 잘 작동하지만(덜 책임지는 일부 보호 장치를 사용하여) 이제 less에는 읽기용 열린 파일 핸들이 있으며, 이는 제어 tty(덜 제어할 때 필요함)를 가리키고 물건을 옮길 때 Put less가 키를 읽으려고 시도하면 쉘은 키를 잠자기 상태로 만듭니다. 파일을 백그라운드에 넣기 전에 less에서 파일의 끝 부분을 검색하여 이 문제를 해결할 수 있습니다.