PyG*_*k03 4 command-line delete directory filename
我知道关于如何删除名称中带有或不带有特定字符串的所有文件 ,以及如何删除名称中带有特定字符串的所有子文件夹,有很多已回答的问题。
但是,没有关于如何删除名称中没有特定字符串的所有子文件夹的 问题。
那么,由于我最近遇到了这样的问题,是否有一个快速命令可以帮助解决这种情况?一个 bash 脚本也足够了。
编辑:
通过subfolders,我的意思是仅一级子文件夹,因为我不想删除二级或三级子文件夹,这些子文件夹的名称可能没有字符串,一级子文件夹的名称可能带有字符串。
Jos*_*Jos 10
假设您想从find当前目录开始,并将其限制在第一级子目录:
find . -maxdepth 1
该find命令有一个有用的标志-not(或!),它否定以下测试。因此,为了找到不包含子字符串的名称,请添加
-not -name "*substring*"
重要提示:您还需要排除当前目录本身。否则,整个当前目录将被删除。
-not -name "."
然后您只想测试目录:
-type d
而且,如果一切正常,您想删除这些目录:
-exec rm -rf {} \;
上面写着“对于所有找到的目录,执行这个命令”。该{}是一个占位符的目录的名称(包括完整路径,因此它适用于正确的)。\;表示要执行的命令的结束。
总结:
find . -maxdepth 1 -not -name "*substring*" -not -name "." -type d -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)
应该管用。但首先,在没有-exec零件的情况下尝试一下。
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |