我有一个特殊要求,我必须使用单独的命令从Linux中的搜索结果中过滤掉所有文件夹及其文件!
示例: 我有以下文件夹,它们都有一个名为 test
的文件/testfolder/f1
/testfolder/f1_0VT0_hc1
/testfolder/f1_0VT0_hc2
例如,如果我运行ls testfolder/*
,初始结果将是:
/testfolder/f1:
test
/testfolder/f1_0VT0_hc1:
test
/testfolder/f1_0VT0_hc2:
test
我需要输入另一个命令(例如grep
)来接收该结果,并过滤掉所有包含 _0VT0 _ 及其文件的目录!
我可以使用以下命令忽略这些目录:
ls testfolder/* | grep -R --exclude-from='.*_0VT0_.*'
但我仍然有文件!
问题:如何修改我的grep命令或用什么命令来忽略文件夹及其中的文件!
澄清我将获得ls
或find
命令,我需要另一个命令在其后执行,以过滤掉这些文件夹和他们的文件。所以我可以在批处理文件中管道或执行此操作。
答案 0 :(得分:2)
使用-prune
选项find
。
find * -name '*_0VT0_*' -prune -o -print
您可以将此作为普通命令替换的另一个命令的一部分使用:
ls -d $(find * -name '*_0VT0_*' -prune -o -print)