如何使用 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
我的容器文件夹的一个目录中有多个具有相同名称模式的文件:
/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