如何在linux docker容器中使用文件名模式获取多个文件的基名

问题描述

我的容器文件夹中的一个目录中有多个具有相同名称模式的文件

/report/tsl_report_20210604.csv
/report/tsl_report_20210604.zip

我正在尝试列出并获取基本名称。所以输出应该是这样的:

tsl_report_20210604.csv
tsl_report_20210604.zip

我正在使用命令 ls report/tsl_report_* | xargs basename -a 2>&1,它在我的本地 Mac 机器上运行良好,但在容器中运行相同的命令时,我得到以下 o/p:

BusyBox v1.25.1 (2018-05-30 19:58:18 GMT) multi-call binary.

Usage: basename FILE [SUFFIX]

Strip directory path and .SUFFIX from FILE

我不知道为什么它在容器中不起作用。任何人都可以指出。

谢谢,

解决方法

作为busybox一部分的basename的精简版本,您可以通过以下方式实现相同的结果:

选项 1:

(apropos "foo")

选项 2:

ls report/tsl_report_* | xargs -n1 basename 2>&

选项 3:

$ for x in report/tsl_report_*; do basename $x ;done
tsl_report_20210604.csv
tsl_report_20210604.zip