basename是一个标准UNIX计算机程序。当向basename传递一个路径名时,它会删除任何前缀,直到最后一个斜线('/'
)字符,然后返回结果。单一UNIX规范中描述了basename。其主要用于shell脚本中。
用法
单一UNIX规范中的basename格式如下。
basename string [suffix]
- string
- 路径名
- suffix
- 若指定,则basename也将删除此后缀。
示例
$ basename /home/jsmith/base.wiki
base.wiki
$ basename /home/jsmith/base.wiki .wiki
base
性能
由于basename只接受一个操作数,在shell脚本的内层循环使用它可能会影响性能。考虑
while read file; do
basename "$file" ;
done < some-input
以上片段会导致每一个输入行都会调用一个单独的进程。出于这个原因,通常用于壳层替代代替
echo "${file##*/}";
参见
外部链接
basename
: return non-directory portion of a pathname – 命令与工具(Commands & Utilities)参考,单一UNIX®规范第7期,由國際開放標準組織发布 basename
: strip directory and suffix from filenames – 参考,单一UNIX®规范第7期,由國際開放標準組織发布
|
---|
| 文件系統 | - cat
- cd
- chmod
- chown
- chgrp
- cksum
- cmp
- cp
- dd
- du
- df
- file
- fsck
- fuser
- ln
- ls
- mkdir
- mount
- mv
- pax(英语:pax (Unix))
- pwd
- rm
- rmdir
- size
- split
- stat
- tee
- touch
- type(英语:type (Unix))
- umask(英语:umask)
|
---|
| 程序 | - at
- bg
- chroot
- cron
- fg
- kill
- killall(英语:killall)
- nice
- pgrep
- pkill(英语:pkill)
- ps
- pstree(英语:pstree)
- time
- top
|
---|
| 用户环境 | |
---|
| 文本编辑 | - awk
- banner(英语:banner (Unix))
- basename
- comm(英语:comm)
- csplit(英语:csplit)
- cut
- diff
- dirname
- ed
- ex
- fmt(英语:fmt)
- fold(英语:fold (Unix))
- head(英语:head (Unix))
- iconv
- join(英语:join (Unix))
- less
- more
- nl(英语:nl (Unix))
- paste(英语:paste (Unix))
- sed
- sort(英语:sort (Unix))
- spell(英语:spell (Unix))
- strings(英语:strings (Unix))
- tail
- tr
- uniq(英语:uniq)
- vi
- wc
- xargs
|
---|
| 壳层内建 | |
---|
| 网络(英语:Network utility) | |
---|
| 查找 | |
---|
| 文档 | - apropos(英语:apropos (Unix))
- help(英语:help (command))
- man
|
---|
| 软件开发 | |
---|
| 杂项 | - bc
- cal
- dc
- expr
- lp(英语:lp (Unix))
- lpr
- sleep
- true和false
- yes
|
---|
| |
|