我需要检查传递给 bash 脚本的参数是文件夹还是文件。它可能会也可能不会以/
xpath=$(dirname "$1")
如果没有尾随,则去掉目录名/
谢谢
给定文件a
和目录t
。
您可以使用以下命令file
:
$ file t
t: directory
$ file a
a: ASCII text
或者-f
(file) 和-d
(dir) 标志。
$ [ -f a ] && echo "this is a file"
this is a file
$ [ -f t ] && echo "this is a file"
$
$ [ -d t ] && echo "this is a dir"
this is a dir
$ [ -d a ] && echo "this is a dir"
$
在路径中使用“test -f”或“test -d”。尽管“dirname”总是返回目录的名称,而不是文件名,但是它可能返回文件所在的目录或目录所在的目录,具体取决于参数是文件还是目录。"basename" 返回文件名或目录,而不是它所在的先前路径。