当使用basename和xargs占位符一起工作时,可能会遇到一些问题。这是因为basename命令默认情况下只接受stdin输入,并且不接受作为命令行参数传递的文件名。
为了解决这个问题,可以使用-I选项来指定xargs占位符,并将文件名作为参数传递给basename命令。下面是一个示例:
find /path/to/files -type f -print0 | xargs -0 -I {} basename {}
这里的-print0选项用于将find命令的输出以null字符分隔,-0选项用于告诉xargs使用null字符作为分隔符。-I {}选项用于指定xargs占位符。
这样,xargs将会将每个文件名传递给basename命令,并输出文件名的基本名称。
注意:在某些操作系统中,xargs的-I选项使用的是-i。因此,如果上述示例不起作用,请尝试使用-i选项代替-I选项。
希望这个解决方法能够帮助到你!