shell中获取bash文件的名称与目录
- 取文件名
out="$(basename /data/backup-file.tar.gz)"
echo "Filename is $out"
- 取当前运行的shell的文件名
out="$(basename $0)"
echo "Filename is $out"
- 取当前shell脚本的目录:
$(cd "$(dirname "$0")";pwd)
手册:
BASENAME(1) BSD General Commands Manual BASENAME(1)
NAME
basename, dirname -- return filename or directory portion of pathname
SYNOPSIS
basename string [suffix]
basename [-a] [-s suffix] string [...]
dirname string
DESCRIPTION
The basename utility deletes any prefix ending with the last slash `/' character present in string (after first stripping trailing
slashes), and a suffix, if given. The suffix is not stripped if it is identical to the remaining characters in string. The
resulting filename is written to the standard output. A non-existent suffix is ignored. If -a is specified, then every argument
is treated as a string as if basename were invoked with just one argument. If -s is specified, then the suffix is taken as its
argument, and all other arguments are treated as a string.
The dirname utility deletes the filename portion, beginning with the last slash `/' character to the end of string (after first
stripping trailing slashes), and writes the result to the standard output.
EXAMPLES
The following line sets the shell variable FOO to /usr/bin.
FOO=`dirname /usr/bin/trail`
DIAGNOSTICS
The basename and dirname utilities exit 0 on success, and >0 if an error occurs.
SEE ALSO
csh(1), sh(1)
STANDARDS
The basename and dirname utilities are expected to be IEEE Std 1003.2 (``POSIX.2'') compatible.
BSD April 18, 1994 BSD
参考: