在 Linux 中,如果要实现类似“反选”(即选择当前未选中的文件或目录)来删除,可以通过组合使用 find
命令和 rm
命令来实现。
假设当前目录下有一些文件和子目录,要删除除特定文件或目录之外的所有内容,可以使用以下命令:
例如,要删除当前目录下除 file1.txt
和 dir1
之外的所有内容,可以执行:
find . -maxdepth 1 ! -name '.' ! -name 'file1.txt' ! -name 'dir1' -exec rm -rf {} \;
这里:
find .
表示在当前目录查找。-maxdepth 1
限制查找深度为 1,即只在当前目录。! -name '.'
排除当前目录本身。! -name 'file1.txt' ! -name 'dir1'
排除指定的文件 file1.txt
和目录 dir1
。-exec rm -rf {} \;
对找到的结果执行删除操作。需要注意的是,使用 rm -rf
命令要非常小心,确保指定的排除条件准确无误,以免误删重要文件。
这种方法的优点是可以灵活地指定要保留的文件或目录,实现类似反选删除的效果。应用场景比如在清理目录时,只想保留特定的几个文件或子目录,其余的都要删除。
领取专属 10元无门槛券
手把手带您无忧上云