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

How to get the basename of multiple file with the filename pattern in linux docker container

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

/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

我不知道为什么它在 container.Can 中不起作用,请任何人指出。

谢谢,

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

选项 1:

ls report/tsl_report_* | xargs -n1 basename

选项 2:

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

选项 3:

find ./report/ -name 'tsl_report_*' | xargs -n1 basename