从目录中获取所有文件并将它们放在一个数组中

时间:2017-02-19 00:10:44

标签: arrays linux bash unix

我正在进行一项任务,但我遇到了启动它的问题。下面是一些作业文本,可以帮助我朝正确的方向发展。

我的主要问题是将文件列表放入数组中。我想如果我能做到这一点,其余的应该很容易。我可以将文件推送到作为参数传递的数组中,但我不知道如何从目录中获取所有文件,将每个文件分解为数组。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

感谢本杰明W的评论: 只需使用find

即可

或者,如果您想要包含隐藏文件并且不想让空文件夹出现问题,请使用此功能(感谢 Fred的评论):

$PATH

答案 1 :(得分:0)

#!/bin/bash

shopt -s nullglob
arr=(/home/*)

for ((i=0; i<${#arr[@]}; i++)); do
    echo "${arr[$i]}"
done

答案 2 :(得分:0)

此脚本检查是否已给出任何参数((( $# == 0 ))),如果没有,则使用set -- "$PWD"将第一个位置参数设置为当前目录.。< / p>

之后,for ffor f in "$@"的缩写)循环遍历所有参数以进行处理。

#!/bin/bash

(( $# == 0 )) && set -- "$PWD"
for f; do
    # Do something with f
done