긴 경로에서 여러 파일을 선택하십시오 (중괄호 확장에서 파일 이름 완성?)


4

때로는이 명령에 대한 인수로 명령을 실행하고 싶습니다. 파일 시스템 계층의 깊은 폴더에있는 여러 파일을 제공하려고합니다. 예 :

command /this/is/a/long/path/foobar /this/is/a/long/path/quux

나는 중괄호 확장을 사용할 수 있기를 바랐습니다.

command /this/is/a/long/path/{foobar,quux}

그러나 파일 이름이 길 수 있으며 파일 이름 완성 (TAB 키)을 사용하고 싶지만 중괄호 안에는 작동하지 않는 것 같습니다.


\ this \ is \ a \ long \ path로 cd하여 실행할 수 있다고 생각하지 않습니다. 그런 다음 명령은 foobar \ file.exe quuz \ file2.exe 명령입니다.
Duall

이러한 종류의 완성은에 추가 될 수 있습니다 $BASH_COMPLETION. 그러나 이것이 당신이 원하는 것인지
모르겠습니다

@olibre-예를 들어 줄 수 있습니까? 나는 이것도 갖고 싶습니다.
nerdwaller

@nerdwaller 내 BASH_COMPLETION지식은 녹슨 :( 또한 나는 몇 분 안에 집에 갈 필요가 ... 누군가가 사용이 질문에 대답 바랍니다 BASH_COMPLETION(I 관심 또한 오전) 건배.
olibre

@olibre 걱정하지 마십시오. 숙제는 어디에서 시작해야하는지 아는 것만으로도 큰 도움이됩니다. 고맙습니다!
nerdwaller

답변:


1

약간의 해결 방법 : Bash [Ctrl]+u에서 명령 줄의 시작 부분에서 커서까지 삭제하고 메모리에 넣습니다. [Ctrl]+y"잉크"(붙여 넣기).

따라서 명령을 실행하고 ls에서 인수 파일로 제공 한다고 가정하면 다음을 수행 ./deep/below/directory/할 수 있습니다.

1) 긴 디렉토리 이름을 입력하고 앞에 공백을 ./deep/below/directory/두십시오 (이것은 나중에 몇 가지 키 입력을 저장합니다) : ( [Tab]필요에 따라 사용할 수 있음 ), 그다음에 [Ctrl]+u삭제하고 메모리에 보관합니다 (참고 : 상대 경로 인 경우 디렉토리 이름의 시작 부분에 './'를 사용하려면 그렇지 않으면 bash는 명령 줄의 시작 부분에 디렉토리 이름을 자동 완성하지 않습니다)

2) 그런 다음 명령과 옵션을 입력하고 공백을 입력하십시오. ex : ls -alFtr

3) [Ctrl]+y긴 dir 이름을 여기에 붙일 때 사용 [tab]하고 원하는 파일 이름의 시작 부분을 입력하고 일반적으로 이름을 자동 완성하는 데 사용하는 것처럼 사용 하십시오 (잘라진 디렉토리 이름은 여전히 ​​메모리에 있으므로 재사용 할 준비가되었습니다)

4) 필요한만큼 3) 단계를 반복하십시오.

5) [Enter]

길게 입력했지만 사용하기가 훨씬 빠릅니다 ^^ 사용해보십시오!


물론 그것은 절대 경로와도 작동합니다 ^^ (친구가 왜 "./"를 고집했는지 물었을 때 : 디렉토리 이름을 입력하는 동안 bash가 자동 완성되도록합니다.)
Olivier Dulac
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.