2단계 CP를 수행하는 방법

2단계 CP를 수행하는 방법

가끔씩 나는 이렇게 해야 할 필요성을 느낀다:

cp /really/long/path/to/file.txt /totally/different/long/path/to/copy.txt

내가 사용하기 때문에autojump,얻다카탈로그에 빠르고 쉽게 접근할 수 있습니다. 그러나 적어도 전체 경로를 입력하지 않고도 한 디렉터리에서 다른 디렉터리로 복사할 때 당황스럽습니다.

GUI 파일 시스템 탐색기에서 이는 간단합니다. 첫 번째 디렉터리로 이동합니다.복사원본 파일로 이동하여 두 번째 디렉터리로 이동합니다.반죽. 하지만 의 경우 cp두 단계로 복사를 완료할 수 없는 것 같습니다.

다음과 같은 작업을 수행하고 싶습니다.

(use autojump to navigate to the first directory)
$ copy file.txt
(use autojump to navigate to the second directory)
$ paste copy.txt

더 긴 입력 대신:

(use autojump to navigate to the first directory)
$ cp file.txt /totally/different/long/path/to/copy.txt

내가 찾고 있는 기능을 제공하는 도구가 있나요? OS X El Capitan에서 Zsh를 사용하고 있습니다.

답변1

다음 작품은 bash아직 시도하지 않았습니다 zsh.

노력하다:

echo ~-   # Just to make sure you know what the "last directory" is

그 다음에:

cp file.txt ~-/copy.txt

또한보십시오:

답변2

@Stephen Harris의 의견에서 영감을 얻은 대체 솔루션은 다음과 같습니다.

# You can "copy" any number of files, then "paste", "move" or
# "pasteln" them to pass them as arguments to cp, mv, or ln
# respectively. Just like a graphical filesystem manager. Each of the
# latter three functions defaults to the current directory as the
# destination.
function copy() {
    emulate -LR zsh
    radian_clipboard=()
    for target; do
        radian_clipboard+=(${target:a})
    done
}
function paste() {
    emulate -LR zsh
    cp -R $radian_clipboard ${1:-.}
}
function move() {
    emulate -LR zsh
    mv $radian_clipboard ${1:-.}
}
function pasteln() {
    emulate -LR zsh
    ln -s $radian_clipboard ${1:-.}
}

사용 예:

(autojump to first directory)
$ copy file.txt
(autojump to second directory)
$ paste copy.txt

보시다시피 이러한 별칭은 및 명령을 둘러싼 매우 얇은 래퍼 cp이므로 디렉터리를 두 번째 인수로 전달하거나 여러 파일 또는 디렉터리를 한 번에 전달하거나 두 번째 인수를 생략하여 현재 디렉터리에서 작동할 수도 있습니다 mv.ln -scopy

관련 정보