0

我需要检查传递给 bash 脚本的参数是文件夹还是文件。它可能会也可能不会以/

xpath=$(dirname "$1")

如果没有尾随,则去掉目录名/

谢谢

4

2 回答 2

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"
$
于 2013-07-15T11:48:45.203 回答
1

在路径中使用“test -f”或“test -d”。尽管“dirname”总是返回目录的名称,而不是文件名,但是它可能返回文件所在的目录或目录所在的目录,具体取决于参数是文件还是目录。"basename" 返回文件名或目录,而不是它所在的先前路径。

于 2013-07-15T11:49:26.927 回答