如何使用具有空格的路径执行 mkdir



我有一个 bash 初学者问题:
我要创建的道路是/Volumes/ADATA UFD/Programming/Qt/Volumes/ADATA UFD已经存在。我想以以下形式编写脚本:

# create a single output directory 
outputdir="/Volumes/ADATA UFD/Programming/Qt"
mkdir -pv $outputdir

我的问题是mkdir创建目录/Volumes/ADATA./UFD/Programming而不是创建/Volumes/ADATA UFD/Programming/Qt

我已经在SO上看过这个问题;但是,这些解决方案都没有奏效:

outputdir=/Volumes/"ADATA UFD/Programming/Qt"
mkdir -pv $outputdir
outputdir=/Volumes/'ADATA UFD/Programming/Qt'
mkdir -pv $outputdir
outputdir='/Volumes/ADATA UFD/Programming/Qt'
mkdir -pv $outputdir
outputdir=/Volumes/ADATA' 'UFD/Programming/Qt
mkdir -pv $outputdir

我做错了什么?这里的好组合是什么?

使用变量时需要用引号括起来。扩展变量进行分词。最好始终引用扩展,无论您是否希望它包含特殊字符或空格。引用时也不需要转义空格。

以下内容将执行您想要的操作:

outputdir='/Volumes/ADATA UFD/Programming/Qt'
mkdir -pv "$outputdir"

传递给 mkdir 命令时,变量两边用双引号括起来:

mkdir -pv "$outputdir"

最新更新