我想播放所有子目录中包含特定术语的所有文件。我尝试使用:
find . -type f | grep Song | vlc
我想我可能误解了它的|
工作原理,因为它没有将grep
输出传递给 vlc
答案1
管道|
将一个命令的标准输出连接到另一个命令的标准输入。但是据我所知,它vlc
不会从标准输入读取文件名列表 - 它希望将“项目”(文件或流的名称)作为命令行传递参数. 因此:
find . -type f -name '*Song*' -exec vlc {} +
或者
find . -type f -name '*Song*' -print0 | xargs -r0 vlc
有关详细信息,请参阅手册页(man find
、man xargs
)。请注意,您不需要grep
- 您可以对其自身进行简单的模式匹配find
。