使用 bash 列出目录中名称中带有空格的文件时出现问题

问题描述 投票:0回答:1

我想要一个目录中所有文件的列表,因为稍后我将在代码中使用它们的名称。 我用了这个代码

path="directory"
files=($(ls "$path"))
echo "${#files[@]}"
echo "${files[@]}"

目录内只有一个文件“文件 0”。 问题在于空白空间被解释为两个文件之间的分隔。 因此它打印 2 个元素:“file”和“0”,因为它们是目录中的 2 个不同文件。

我找不到任何与我类似的问题。 重击版本: GNU bash,版本 5.1.16(1)-发布 Linux 薄荷 21.1

bash linux-mint
1个回答
0
投票

不要使用

ls
。使用由 shell 直接扩展的通配符:

path="directory"
files=("$path"/*)
© www.soinside.com 2019 - 2024. All rights reserved.