如何删除所有子文件夹除了文件夹名称X使用终端 [英] how to remove all subfolders except ones with foldername X using Terminal

查看:311
本文介绍了如何删除所有子文件夹除了文件夹名称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使用终端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆