[리눅스/유닉스 완전 정복 목차]
안녕하세요 양햄찌 블로그 주인장입니다.
오늘은 오랜만에 리눅스유닉스 포스팅으로 돌아왔어요~~
컴파일을 대량으로 해야할 일이 생겼는데 일일이 컴파일 하기 귀찮아서..
대량으로 컴파일해주는 스크립트를 짜다가, 문득 오 이거 포스팅해야겠다 싶었답니당 ㅋㅋ
basename과 dirname
오늘 알아볼 명령어는, basename과 dirname입니다.
dir은 디렉터리의 약자로, 파일명을 제거하고 경로만 추출하고 싶을 때
base는 베이스! 토대가 되는 이름으로, 경로를 제외하고 파일명만 추출하고 싶을 때 유용해요.
예를 들어~ "D:\ProgramData\workspace\VSCode\Test1\index.html" 이렇게 있다면
경로를 제외한 파일명 "index.html"이 basename, 그 앞에 경로가 dirname이 되는거죠.
basename 명령어 사용법
디렉터리위치를 제거하고 순수하게 파일명만 뽑고 싶을 때 유용한 명령어 입니다.
그런데, 확장명도 제거 할 수 있도록 제공해서 유용해요.
man basename 쳤을 때 나오는 설명화면 입니다.
중요한건 저기 빨간색 부분! 파일경로나 확장자를 제거할수 있다~
경로만 제거할거면, 굳이 확장자 부분을 작성해줄필요 없고,
뒤에 확장자도 제거하고 싶으면 파일명 다음에 제거하고자 하는 확장자를 넣어주면 돼요.
1. basename sourcefile.c
확장자 제거 안하고 파일명이 그대로 출력
2. basename /workspace/Project1/src/sourcefile.c
경로만 제거하고 확장자 제거 안한 파일명 sourcefile.c가 출력
3. basename sourcefile.c .c
파일맨뒤에서 ".c"를 제거하고 sourcefile만 출력
4. basename /workspace/Project1/src/sourcefile.c .c
파일맨뒤에서 ".c"도 제거하고 파일경로도 제거하고 순수 파일이름만 출력
cat sample.txt | xargs -n1 basename
리스트 목록 배열로 추출
basename 옵션 OPTIONS
■ -a 옵션
옵션으로는 -a가 있는데 인자로 여러가 파일명을 붙일 수 있습니다.
-a 옵션 뒤에 인자를 3개 넣었더니 결과도 3개 출력된 것을 확인할 수 있어요.
■ -s 옵션
suffix를 지정할 때 -s 옵션을 사용하면 됩니다.
.c 확장자가 있는 파일일 경우 .c를 제거하라는 명령어이고~
결과를 보면 .c 확장자가 있는 hello.c 파일만 .c가 제거되었어요.
■ -z 옵션
위에 예시들 보면 결과가 다 엔터(개행)으로 분리되어 보이는데
-z는 제로! 결과를 개행으로 구분하지 말고 NULL 즉 구분없이 다닥다닥 붙여서 보여주게 합니다.
dirname 사용법
그 다음 바로 이어서 dirname 명령어를 살펴봅시다.
중요한 부분은 저기 설명부분~
파일명이 풀 경로가 포함된 파일명이라 할 때 가장 마지막 요소를 제거한 나머지니까 즉 경로만!을 의미하죠.
문법도 이게 끝입니당
1. dirname sourcefile.c
파일명제거하고 현재경로 . 만 남음
2. dirname /workspace/Project1/src/sourcefile.c
파일명을 제거하고 경로 /workspace/Project1/src만 남음
3. dirname ./sourcefile.c
1번과 마찬가지로 파일명 제거 후 현재경로 .만 남음
4. dirname /workspace/Project1/test1.txt /Program/execute.exe
이렇게 인자를 하나가 아닌 여러개를 부여할 수도 있습니다.
dirname은 옵션이 -z 이거 밖에 없어요. -z옵션은 위와 동일합니다. 띄어쓰기 없애고 다닥다닥 붙여주는거..
간단하죠?
오늘은 이렇게 basename과 dirname 사용하는 법을 알아봤어요~
다음에 또 만나요! 도움이 되었다면 공감 어떤가요?
'별걸다하는 IT > 리눅스 유닉스' 카테고리의 다른 글
[리눅스/유닉스] AWK 명령어 기본적인 사용문법 - NF/NR 그리고 패턴과액션 (0) | 2021.12.15 |
---|---|
[유닉스/리눅스] 배열 사용법, 셸 스크립트 배열 문법 (ksh, bash shell array) (0) | 2021.12.08 |
1902회 리눅스마스터 1급 1차 필기 1과목 1탄 [1-10문항] 기출문제 풀이 해설 답안 (0) | 2021.03.12 |
2002회 리눅스마스터 1급 1차 필기 1과목 2탄 [11-20문항] 문제 풀이 해설 (0) | 2021.03.11 |
2002회 리눅스마스터 1급 1차 필기 1과목 1탄 [1-10문항] 문제 풀이 해설 (0) | 2021.03.10 |
최신 댓글