basename 함수
basename 함수
basename은 파일시스템 경로가 담긴 문자열을 받아, 마지막 부분을 제외한 나머지를 모두 제거해요. 경로에서 파일 이름만 꺼내고 싶을 때 쓰는 함수죠.
출처: Packer 공식 문서
본문
이 함수는 경로 문자열만 다루고 파일시스템 자체에는 접근하지 않아요. 그래서 심볼릭 링크 같은 파일시스템 기능은 고려할 수 없어요.
경로가 비어 있으면 결과는 "."이고, 이는 현재 작업 디렉터리를 의미해요.
이 함수의 동작은 호스트 플랫폼에 따라 달라져요. Windows 시스템에서는 백슬래시 \를 경로 구분자로 사용하고, Unix 시스템에서는 슬래시 /를 사용해요.
리소스 인자에서 파일시스템 경로를 직접 참조하면, 같은 구성을 여러 시스템이나 다른 호스트 운영체제에서 적용할 때 원치 않는 diff가 생길 수 있어요. 파일시스템 경로는 file 함수의 인자(내용만 저장되는 경우)나 connection, provisioner 블록처럼 일시적인 값에만 사용하는 걸 권장해요.
예시 (Examples)
> basename("foo/bar/baz.txt")
baz.txt
관련 함수 (Related Functions)
dirname은 파일시스템 경로에서 마지막을 제외한 모든 세그먼트를 돌려줘요.basename이 반환하는 부분을 버리는 셈이에요.