교체할 수 있기를 바랍니다
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 매개변수를 사용하십시오.