这是我到目前为止所做的,它有效,但它会引发错误,我不确定原因:
$ find . -mindepth 1 -type d '!' -exec sh -c 'ls -1 "{}" | egrep -i -q "\.(mp4|avi|mkv)"' \; -print -exec rm -r {} \;
./test
find: `./test': No such file or directory
答案 0 :(得分:0)
尝试此命令
find . -mindepth 1 -type f | egrep -v "\.(mp4|avi|mkv)$" | xargs rm -i
答案 1 :(得分:0)
这是我最终使用的:
find . -mindepth 1 -type d '!' -exec sh -c 'ls -1 "{}" | egrep -i -q "\.(mp4|avi|mkv)"' \; -print | while read line;do rm -r $line;done
如果没有与正则表达式匹配的目录,我想要一个没有抛出错误的单行内容。