find命令不打印指定扩展名为.wav的文件

时间:2016-07-20 17:13:45

标签: linux bash find

我尝试使用此命令递归搜索文件夹并打印.wav文件,仅显示文件名(不是位置):

find /location/Master_Folder/ -type f -printf "%f\n" -iname *.wav > Wav_files.txt

我也尝试将.wav放在双引号中,如下所示:

find /location/Master_Folder/ -type f -printf "%f\n" -iname "*.wav" > Wav_files.txt

当我检查Wav_files.txt文件时,还列出了.xml文件。我只打算打印.wav文件 - 我做错了什么?

1 个答案:

答案 0 :(得分:1)

find /location/Master_Folder/ -type f -iname '*.wav' -printf "%f\n"  > Wav_files.txt

将条件(-type-iname)放在操作(-printf)之前。 find通常从左到右进行评估,因此-printf发生在原始命令行中-iname之前。

另外,我倾向于使用单引号''围绕find中的模式,所以如果我搜索包含$的文件名,我不会感到惊讶(这会导致在""内扩展。 :)