본문 바로가기

OS/Linux

[Linux]How to use basename command in CentOS - strip directory and suffix from filenames

Purpose

Print NAME with any leading directory components removed. If specified, also remove a trailing SUFFIX.

파일명에서 접미사를 삭제할 때 사용한다.

나의 경우 gitlab restore 스크립트를 작성할 때 사용하였다.
backup 파일이 "1620209195_2021_05_05_13.2.0_gitlab_backup.tar" 와 같은 형식으로 떨어졌고, restore 명령어에서는 "_gitlab_backup.tar" 이 부분이 불필요하여 basename 명령어를 사용하여 해당 내용을 제거 하였다.


suffix

remove a trailing suffix

option: -s

# without -s 
root@jv0540 [/data/gitlab/backups]basename /data/gitlab/backups/1620209195_2021_05_05_13.2.0_gitlab_backup.tar
1620209195_2021_05_05_13.2.0_gitlab_backup.tar

# with -s
root@jv0540 [/data/gitlab/backups]basename -s "_gitlab_backup.tar" /data/gitlab/backups/1620209195_2021_05_05_13.2.0_gitlab_backup.tar
1620209195_2021_05_05_13.2.0

root@jv0540 [/data/gitlab/backups]basename -s "_gitlab_backup.tar" /data/gitlab/backups/*gitlab_backup.tar
1620209195_2021_05_03_13.2.0
1620209195_2021_05_05_13.2.0

multiple

options: -a

root@jv0540 [~/scripts]basename -a ~/scripts/*.txt
test1.txt
test2.txt
test3.txt

root@jv0540 [~/scripts]basename -a ~/scripts/test1.txt ~/scripts/test2.txt
test1.txt
test2.txt