在Linux中,如何删除在文件夹层次结构中嵌套的某个名称的文件夹?
以下路径是在一个文件夹下,我想删除所有名为a的文件夹。
1/2/3/a
1/2/3/b
10/20/30/a
10/20/30/b
100/200/300/a
100/200/300/b
我应该从父文件夹中使用什么Linux命令?
在Linux中,如何删除在文件夹层次结构中嵌套的某个名称的文件夹?
以下路径是在一个文件夹下,我想删除所有名为a的文件夹。
1/2/3/a
1/2/3/b
10/20/30/a
10/20/30/b
100/200/300/a
100/200/300/b
我应该从父文件夹中使用什么Linux命令?
当前回答
查找路径/to/the/folders -maxdepth 1 -name "my_*" -type d -delete
其他回答
我有100多个文件
log-12
log-123
log-34
....
以上答案对我不起作用
但是下面的命令帮助了我。
find . -name "log-*" -exec rm -rf {} \;
我给出- as。所以它会删除以log-开头的文件和文件夹
rm -rf递归删除文件夹,即使它有文件。
如果你只想要文件夹
find -type d -name "log-*" -exec rm -rf {} \;
单独文件
find -type f -name "log-*" -exec rm -rf {} \;
另一个:
"-exec rm -rf {} \;" can be replaced by "-delete"
find -type d -name __pycache__ -delete # GNU find
find . -type d -name __pycache__ -delete # POSIX find (e.g. Mac OS X)
结合多个答案,下面是一个在Linux和MacOS上都可以使用的命令
rm -rf $(find . -type d -name __pycache__)
查找路径/to/the/folders -maxdepth 1 -name "my_*" -type d -delete
之前的注释对我不起作用,因为我在结构中的某个文件夹中的文件夹名称中寻找表达式
下面的代码适用于如下结构的文件夹:
B /d/ab/cd/file或c/d/e/f/a/f/file
使用rm-rf前检查
find . -name *a* -type d -exec realpath {} \;
递归地删除包含内容的文件夹
find . -name *a* -type d -exec rm -rf {} \;