如何找到包含给定文件的所有子文件夹?
例如,在 Minecraft 服务器安装中,不同的世界存储在具有任意名称的子文件夹中。为了确定给定的文件夹代表一个世界,我必须level.dat
在其中寻找。是否有一个命令可以查找所有level.dat
文件并返回包含它们的文件夹?
答案1
只需找到您的文件并返回目录名:
find -name 'level.dat' -exec dirname {} \;
答案2
或者,找到您的文件并批量提取目录名称:
find
起始目录–name level.dat –print | sed 's@/level.dat$@@'
答案3
find ~ -type f -name "level.dat" -printf '%h\n'
如果可能有多个具有该名称的文件,则通过管道传输到uniq
答案4
您可以用来find
仅打印通过特定测试的文件。我喜欢这种方法:
find . -type d -execdir test -f {}/level.dat \; -print
这会找到所有包含名为level.dat
.