반응형
파일 경로나 디렉터리 경로를 다루는 Emacs Lisp 함수 몇 가지를 정리합니다.
완벽한(?) 경로 구하기
(expand-file-name "~/.emacs.d")
;; => "/Users/seorenn/.emacs.d"
UNIX에서 홈 디렉터리($HOME
)를 축약해서 표시하는 문자인 ~
(Tilde, 물결 혹은 지렁이 무늬)를 원래 경로로 치환하는 데 주로 사용합니다.
와일드카드를 이용해 특정 경로의 파일 목록 구하기
(file-expand-wildcards "~/.emacs.d/*.el")
;; => ("~/.emacs.d/early-init.el"
"~/.emacs.d/init.el"
"~/.emacs.d/init.example.el")
배치 작업을 위해 파일 목록을 구할 때 편하게 사용할 수 있습니다.
경로에서 파일 이름만 구하기
(file-name-nondirectory "/foo/bar/sample.txt")
;; => "sample.txt"
경로에서 디렉터리 이름만 구하기
(file-name-directory "/foo/bar/sample.txt")
;; => "/foo/bar/"
파일 이름에서 확장자 제거하기
(file-name-sans-extension "sample.txt")
;; => "sample"
참고로 .
단위로 떼어내기 때문에 sample.txt.old
같은 식으로 여러 확장자가 붙어 있으면 마지막 것만 떼어냅니다.
디렉터리 경로 명확히 하기
(file-name-as-directory "/foo/bar")
;; => "/foo/bar/"
끝에 /
가 붙었다는 것에 차이가 있습니다. 여기 뒤에 파일 이름만 붙이면 완벽한 파일 경로가 되겠네요.
상대 경로 구하기
(file-relative-name "/foo/bar/sample.txt" "/foo")
;; => "bar/sample.txt"
첫 인자의 경로를 두 번째 인자의 디렉터리에서 액세스 할 수 있는 상대 경로를 돌려줍니다.
728x90
반응형
'기술적인 이야기 > 이맥스' 카테고리의 다른 글
리스트 다루기 (Emacs Lisp) (889) | 2020.03.24 |
---|---|
Emacs (1664) | 2020.03.24 |
파일 읽어서 내용 수정하고 저장하기 (Emacs Lisp) (0) | 2020.03.23 |
Tmux에서 트루컬러 이맥스 사용하기 (0) | 2020.02.08 |
터미널에서 트루컬러 이맥스 사용하기 (0) | 2020.02.07 |
댓글