在Linux中,有什么方法/替代readlink -f来处理文件夹名称中存在的空格?

时间:2018-09-28 13:35:23

标签: linux bash shell

我的目录结构是/ local / mnt / abcd / sub 1

因此,在“ sub 1”文件夹中,我正在尝试执行以下脚本

SOURCEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
readlink -f $SOURCEDIR/..

它给出的输出为:/ local / mnt / abcd / sub而不是/ local / mnt / abcd / sub \ 1 基本上,它不能处理文件夹名称中是否存在空格。所以我想知道readlink是否有其他选择,或者我们可以通过其他任何方式获取绝对路径

2 个答案:

答案 0 :(得分:2)

您需要引用参数扩展名,以便2018-09-28 13:03:38 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade 2018-09-28 13:03:38 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade 将路径作为单个参数获取。

readlink

不带引号,则等同于

readlink -f "$SOURCEDIR/.."

答案 1 :(得分:2)

在参数周围加上双引号以使其保持为单个参数:

readlink -f /local/mnt/abcd/sub 1/..