shell中获取bash文件的名称与目录

  |   0 评论   |   1,151 浏览

  1. 取文件名
out="$(basename /data/backup-file.tar.gz)"
echo "Filename is $out"
  1. 取当前运行的shell的文件名
out="$(basename $0)"
echo "Filename is $out"
  1. 取当前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

参考:

  1. https://www.cyberciti.biz/faq/bash-get-filename-from-given-path-on-linux-or-unix/

评论

发表评论


取消