![VI를 통해 복사된 파일을 여는 방법](https://linux55.com/image/138639/VI%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EB%B3%B5%EC%82%AC%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%97%AC%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
"a.txt"가 있다고 가정해 보겠습니다. 파일을 복사한 후 VI를 사용하여 새로 복사된 파일을 열고 싶습니다.
cp a.txt b.txt
vi b.txt
두 명령을 하나의 명령으로 결합하는 방법은 무엇입니까?
답변1
a.txt를 열고 내용을 b.txt에 저장한 다음(효과적으로 복사) b.txt로 전환하여 vi 자체를 사용하여 복사할 수 있습니다.
함께 넣어보세요:
vi -c 'w b.txt' -c 'e#' a.txt
이는 (내부적으로 ) 내용을 b.txt라는 파일에 저장하는 명령을 실행 vi a.txt
한 후 실행하는 것과 같습니다 . 그러나 이 시점에서 vi는 여전히 a.txt를 편집하고 있으므로 "대체 파일 편집"(또는 "마지막 파일 편집")을 의미하는 명령을 계속 진행하고 vi가 b.txt를 방금 건드린 경우 다음으로 전환합니다. 문서를 편집 중입니다.:w b.txt
vi
:e#
답변2
&&
연산자 사용
cp a.txt b.txt && vi b.txt
답변3
자신만의 함수를 작성하여 사용할 수 있습니다. 다음 예에서는 cp1을 명령으로 사용합니다.
예:
$ cat test.txt
function cp1() {
source_file=$1
destination_file=$2
cp "${source_file}" "${destination_file}"
vi "${destination}"
}
$ . ./test.txt
$ cp1 a.txt b.txt
답변4
입력을 저장하는 방법을 원한다면 bash 내장 기능을 사용하여 이전 명령의 마지막 단어를 반복할 수 있습니다. 당신은 이것을 할 수 있습니다ALT+.
> cp a.txt b.txt
> vi ALT+.
매우 유용하며 vim의 도트 연산자를 생각나게 합니다.
행복한 골프.