별칭: 파일 백업 및 편집

별칭: 파일 백업 및 편집

파일을 편집(및 덮어쓰기)하기 전에 파일(대개 이미지)을 백업해야 합니다.
현재 나는 다음을 통해 이 작업을 수행합니다.

cp file.jpg ~/BACKUP/file.jpg
exiv2 BLABLABLA file.jpg

명령 하나로 이 작업을 어떻게 수행할 수 있나요?
예를 들어

AAalias file.jpg

별칭인지 함수 인지는 중요하지 않지만 AAalias이것은모양내가 찾고 있는 것은: 명령+파일 이름

답변1

쉘 함수를 사용하십시오:

backup_and_edit () {
    cp -i "$1" "$HOME/BACKUP" &&
    exiv2 BLABLABLA "$1"
}

이것은 일반적으로 별칭과 셸 함수를 배치하는 위치(아마도 파일)에 배치되고 ~/.bashrc함수를 인스턴스화한 후(새 셸 세션을 시작하여) 다음과 같이 사용합니다.

$ backup_and_edit ./some/file.jpg

이렇게 호출하면 함수가 실행됩니다.

cp -i ./some/file.jpg "$HOME/BACKUP" &&
exiv2 BLABLABLA ./some/file.jpg

-i옵션을 사용 cp하면 유틸리티가 백업 디렉터리에 있는 동일한 이름의 파일을 덮어쓰기 전에 확인을 요청하게 됩니다. 복사에 실패하면 exiv2이 명령이 호출되지 않습니다.

답변2

함수를 사용하여 별칭을 만들 수 있습니다.

alias Aalias='_(){ local file=${@: -1};(($#<2))||[[ ! -e "${file}" ]]&&echo "Usage: Aalias <options> <file>"&&return 1;cp "${file}" ~/BACKUP/${file};exiv2 $@;}; _'

${@: -1} grabs the last argument for the file 
[[ ! -e "${file}" ]] checks to make sure the file exists 

2개 미만의 매개변수가 제공되거나 파일이 존재하지 않으면 사용법이 표시됩니다.

마지막 인수가 기존 파일의 이름인 경우 사용자 홈 디렉터리의 BACKUP 디렉터리에 백업되고 명령줄에 제공된 옵션을 사용하여 exiv2가 시작됩니다.

관련 정보