함수를 사용하여 압축된 파일의 이름이 잘못되었습니다.

함수를 사용하여 압축된 파일의 이름이 잘못되었습니다.

bash 함수 변수 구문에 대한 기본적인 내용이 누락되었을 수 있습니다.

zip 명령 구문에 대한 내 이해는 입니다 zip newfilename.zip filetobezipped. 따라서 내 기능이 지정된 폴더와 모든 내용을 압축할 수 있기를 원하며 결과, 압축된 폴더의 이름이 .zip이 추가된 내용입니다. 그런 다음 Windows 디렉토리에 복사하고 Linux 디렉토리에서 삭제했습니다.

명확하게 말하자면, 압축 파일의 이름을 "something"으로 지정하려면 압축된 버전의 이름을 "something.zip"으로 지정하고 싶습니다.

.zip그러나 이 기능은 마침표 앞에 문자가 없는 숨겨진 zip 파일을 생성합니다 . 그래서 내 변수 $1이 함수에 올바르게 전달되지 않은 것 같습니다.

params: $1: filename, $2: week_x, $3: day_y
hwcopy() {
    zip -r $1.zip $1
    cp $1.zip /mnt/c/Users/myName/Desktop/homework/$2/$3
    rm -r $1.zip
}

호출 방법(상위 디렉토리에서):$ hwcopy file_folder_name/ week_x day_5

답변1

더 많은 테스트를 거친 후에 문제는 내가 말한 방식에 있다는 것을 깨달았습니다.

zip file_name/.zip file_name작동하지 않지만 zip file_name.zip file_name작동할 것입니다.

${1%/}.zip그래서 슬래시 문자를 잘라내기 위해 함수 내부에서 호출했습니다 .

관련 정보