
현재 디렉터리에 있는 동일한 이름의 파일에 해당 curl
파일을 자동으로 기록하는 별칭을 만들고 싶습니다 .curl
예를 들어:
% curl https://bootstrap.pypa.io/get-pip.py
curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
별칭이 다음 인수를 읽어서 실제 실행되는 스크립트에 이렇게 삽입하도록 하는 방법이 있나요?
답변1
별칭은 인수를 처리하지 않습니다. 다행히도 함수는 다음을 수행합니다.
mycurl () {
curl "$1" > "${1##*/}"
}
${1##*/}
"$1의 마지막 슬래시까지 모든 것을 제거하십시오"라는 매개변수 확장 형식은 어디에 있습니까?
답변2
만약 너라면필요한이렇게 하려면 bash 함수를 사용하거나 (더 복잡한 상황에서는) 자체 스크립트 파일에서 수행합니다 ~/bin/
.
wget
하지만 대신에 사용할 수도 있습니다 curl
. 기본적으로 요청한 작업을 수행해야 하며 추가 보너스로 지정된 파일(예: http://example.com/
)이 없는 URL 문제를 피할 수 있습니다.
답변3
PWD
별칭 내에서 환경 변수( ), 명령 대체 또는 IO 리디렉션의 조합을 사용할 수 있는 몇 가지 해결 방법이 있습니다 . 다음은 Bash에서 가장 가까운 예입니다.
alias curl='xargs -I% curl -o "%" "%" <<<'
그러면 URL과 동일한 이름으로 파일이 저장됩니다.
$ curl https://bootstrap.pypa.io/get-pip.py
Warning: Failed to create the file https://bootstrap.pypa.io/get-pip.py
이는 해당 URL을 파일 이름으로 변환하여 추가로 수정할 수 있습니다.문자열 조작쉘 작업, 명령 대체 또는 기타 도구를 사용 basename
합니다 awk
.
curl
또는 언제든지 다음을 가리킬 수 있습니다 wget
.
$ alias curl=wget
$ curl https://bootstrap.pypa.io/get-pip.py
'get-pip.py' saved