별칭 변경에 다른 파일을 복사하는 방법

별칭 변경에 다른 파일을 복사하는 방법

교체할 수 있기를 바랍니다

cp x.x ~/some/long/directory/that/is/deeply/nested/

그리고

cp x.x s1

여기서 s1은 가리키는 별칭입니다./some/long/directory/that/is/deeply/nested/

그러나 목적지는 종종 변경됩니다.
오늘은

/some/long/directory/that/is/deeply/nested/

다음 날은

/some/long/directory/less/deep

다음 날은

/some/other/directory/less/deep

계속 변경된다는 점을 감안할 때 별칭(또는 내 생각에 함수일 가능성이 높음)이 있습니까? 별칭을 "해석"하는 대상으로 cp를 수행할 수 있는 방법이 있습니까?

그것은 마치

cp x.x `s`

"소스" 파일에도 다양한 값이 있습니다. 나는 하나(또는 몇 개의 목록) 위치나 하나(또는 몇 개의 목록) 소스 파일만을 가리키는 별칭을 원하지 않습니다. 나는 그 당시 별칭이 가리키는 것이 무엇이든 간에 그것이 호출될 때 파일 이름을 제공하기를 원합니다.

소스와 대상은 수천 개의 값 중 하나일 수 있습니다.

답변1

쉘 변수

s1다음과 같이 변수를 배치할 디렉터리를 추가하면 됩니다 .

s1=/some/long/directory/that/is/deeply/nested/

그런 다음 다음과 같이 액세스할 수 있습니다.

$ cp x.x $s1

심볼릭 링크

오늘의 긴 디렉토리에 대해서만 홈 디렉토리의 링크를 유지할 수 있습니다.

$ ln /some/long/directory/that/is/deeply/nested/ $HOME/shortlink
$ cp x.x $HOME/shortlink

목차 북마크 도구

이 Q&A 질문을 확인하세요.터미널에서 빠른 디렉토리 탐색. 다음과 같은 도구자동 점프또는xd - 초고속 디렉토리 체인저, 자주 사용하는 디렉토리를 "북마크"로 지정하여 긴 경로를 입력하지 않고도 쉽게 변경할 수 있습니다.

인용하다

답변2

어때요?

#!/bin/bash
mdhf="/home/MichaelDurrant/linq
params="$@"
[[ $params = *-d* ]] && nufile=${params##*\-f}
[[ $nufile ]] && [ -L "$mdhf" ] && rm $mdhf 
[[ $nufile ]] && ln -s $nufile $mdhf 
for i in "$@"; do
[[ $i = '-d' ]] && break 
cp -v $i $mdhf
done

사용법은 입니다 mdcp filename -d directory. 현재 소프트 링크 디렉토리를 변경하려면 -d 매개변수를 사용하십시오.

관련 정보