本文介绍了如何删除所有子文件夹除了文件夹名称X使用终端的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
除了文件夹名称X和Y之外的所有子文件夹使用终端,最好的方法是什么?解决方案
find。 -mindepth 1 -d-type d! -name X -a! -name Y -exec rm -r {} \ +
mkdir d ;触摸d / f;找 。 -name d -delete
似乎不起作用。
-mindepth 1和-d
至少在OS X上是可选的。没有 -mindepth -1
将会有一个警告,如 rm:。和..可能不会被删除
。没有 -d
rm会删除子文件夹后删除其父文件夹。
。
如果所有目录都在当前目录下:
shopt -s extglob
rm -r X | Y)/
What is the best way to remove all subfolders except ones with folder name X and Y using Terminal.
解决方案
find . -mindepth 1 -d -type d ! -name X -a ! -name Y -exec rm -r {} \+
mkdir d; touch d/f; find . -name d -delete
doesn't seem to work.
-mindepth 1 and -d
are optional at least on OS X. Without -mindepth -1
there would be a warning like rm: "." and ".." may not be removed
. Without -d
rm would try to delete subfolders after deleting their parent folders.
{} doesn't have to be escaped.
If all directories are under the current directory:
shopt -s extglob
rm -r !(X|Y)/
这篇关于如何删除所有子文件夹除了文件夹名称X使用终端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!