bash - 如何在bash中列出名称中带有空格的子目录

标签 bash ubuntu ubuntu-16.04

我发现了一些与此类似的问题,但令人惊讶的是,它们都不适合我。

我在脚本中写了这个:
for d in $(ls -d "$1"); do echo $d done
$1 是我希望打印出子目录列表的父目录,但是,运行它会打印出例如名为“带空格的目录”的目录,在单独的行上以 3 个单词的形式出现。

最佳答案

您可以使用 shell globbing 而不是进程替换,这不会受到单词扩展问题的影响:

# to include dotfiles and not iterate empty directory
shopt -s dotglob nullglob

for d in "$1"/*; do
    echo "$d"
done

或者你可以求助于相当常见的find ... -print0 | xargs -0 ...图案。

关于bash - 如何在bash中列出名称中带有空格的子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52067529/

相关文章:

bash - 在bash中实现每组排序的最高值

Linux:将DD结果输出到文本文件

linux - Bash 脚本 - 卸载一个设备,但如果没有安装它不会失败?

RMongo 在 Ubuntu 中安装失败并出现段错误

linux - 如何ssh运行tail然后将数据发送到mysql数据库

android - 如何在 ubuntu 16.04 中启动 android 模拟器?

json - 日志中嵌套字符串化 json 的 pretty-print

linux - bash 案例复合模式不起作用

azure - 基于 Linux JNA 的亲和性因加载失败而无法使用

linux - Ubuntu Linux : How to count the numbers of certain files in a directory