获取具有特定名称的所有安装目录
getting all mounting directories with a specific name
我正在尝试接收所有具有特定名称的安装目录,以便将它们通过管道传输到另一个命令中。
在 /mnt/
中有 2 个文件夹,plotfield1
和 plotfield2
ls|grep plotfield
正确 returns 这两个文件夹名称:
但我要找的是完整路径:
/mnt/plotfield1
/mnt/plotfield2
目前,为了测试,我使用这个:
cd /mnt/
test=$(ls|grep plotfield|cat <(echo -n '/mnt/') -)
echo $test
结果出乎意料,只连接了第一个字符串:
有没有更好的方法来获取文件的完整路径?
目标将是这样的伪代码:
ls|grep plotfield|concat|xargs chia plots add -d
这应该很简单,使用像 plotfield*
这样的 glob 表达式并使用内置 printf
将输出放入标准输出,即从任何路径
printf '%s\n' /mnt/plotfield*
# or
printf '%s\n' /mnt/plotfield?
另外,为了存储多行输出,请使用数组类型来保存您的值。因此,要将以上行存储到数组中,请使用 mapfile
或 readarray
mapfile -t paths < <(printf '%s\n' /mnt/plotfield?)
并根据需要将数组扩展 "${paths[@]}"
传递给任何其他命令。
我正在尝试接收所有具有特定名称的安装目录,以便将它们通过管道传输到另一个命令中。
在 /mnt/
中有 2 个文件夹,plotfield1
和 plotfield2
ls|grep plotfield
正确 returns 这两个文件夹名称:
但我要找的是完整路径:
/mnt/plotfield1
/mnt/plotfield2
目前,为了测试,我使用这个:
cd /mnt/
test=$(ls|grep plotfield|cat <(echo -n '/mnt/') -)
echo $test
结果出乎意料,只连接了第一个字符串:
有没有更好的方法来获取文件的完整路径?
目标将是这样的伪代码:
ls|grep plotfield|concat|xargs chia plots add -d
这应该很简单,使用像 plotfield*
这样的 glob 表达式并使用内置 printf
将输出放入标准输出,即从任何路径
printf '%s\n' /mnt/plotfield*
# or
printf '%s\n' /mnt/plotfield?
另外,为了存储多行输出,请使用数组类型来保存您的值。因此,要将以上行存储到数组中,请使用 mapfile
或 readarray
mapfile -t paths < <(printf '%s\n' /mnt/plotfield?)
并根据需要将数组扩展 "${paths[@]}"
传递给任何其他命令。