1、ls + grep + xargs 实现
a、
root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped root@DESKTOP-1N42TVH:/home/test# ls abc1.csv abc2.csv abc4.csv abc6.csv abc8.csv kk.map test1.txt test2.txt test4.txt test6.txt test8.txt abc10.csv abc3.csv abc5.csv abc7.csv abc9.csv mn.ped test10.txt test3.txt test5.txt test7.txt test9.txt root@DESKTOP-1N42TVH:/home/test# ls | grep -v "kk.map" abc1.csv abc10.csv abc2.csv abc3.csv abc4.csv abc5.csv abc6.csv abc7.csv abc8.csv abc9.csv mn.ped test1.txt test10.txt test2.txt test3.txt test4.txt test5.txt test6.txt test7.txt test8.txt test9.txt root@DESKTOP-1N42TVH:/home/test# ls | grep -v "kk.map" | xargs rm -rf ## 删除除kk.map外以外的所有文件 root@DESKTOP-1N42TVH:/home/test# ls kk.map
b、
root@DESKTOP-1N42TVH:/home/test# ls root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped root@DESKTOP-1N42TVH:/home/test# ls abc1.csv abc2.csv abc4.csv abc6.csv abc8.csv kk.map test1.txt test2.txt test4.txt test6.txt test8.txt abc10.csv abc3.csv abc5.csv abc7.csv abc9.csv mn.ped test10.txt test3.txt test5.txt test7.txt test9.txt root@DESKTOP-1N42TVH:/home/test# ls | grep -E -v "kk.map|mn.ped" abc1.csv abc10.csv abc2.csv abc3.csv abc4.csv abc5.csv abc6.csv abc7.csv abc8.csv abc9.csv test1.txt test10.txt test2.txt test3.txt test4.txt test5.txt test6.txt test7.txt test8.txt test9.txt root@DESKTOP-1N42TVH:/home/test# ls | grep -E -v "kk.map|mn.ped" | xargs rm -rf ## 删除除kk.map和mn.ped以外的所有文件 root@DESKTOP-1N42TVH:/home/test# ls kk.map mn.ped
2、find实现
a、
root@DESKTOP-1N42TVH:/home/test# ls root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt root@DESKTOP-1N42TVH:/home/test# ls abc1.csv abc2.csv abc4.csv abc6.csv abc8.csv kk.map test1.txt test2.txt test4.txt test6.txt test8.txt abc10.csv abc3.csv abc5.csv abc7.csv abc9.csv mn.ped test10.txt test3.txt test5.txt test7.txt test9.txt root@DESKTOP-1N42TVH:/home/test# find ./ -name "kk.map" ./kk.map root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map" ./ ./test8.txt ./abc1.csv ./abc8.csv ./abc3.csv ./test6.txt ./test10.txt ./test2.txt ./abc10.csv ./test1.txt ./test9.txt ./test5.txt ./abc7.csv ./test7.txt ./abc2.csv ./abc6.csv ./abc4.csv ./test3.txt ./abc5.csv ./abc9.csv ./mn.ped ./test4.txt root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map" -exec rm -rf {} \; #删除除kk.map文件以外的所有文件 rm: refusing to remove '.' or '..' directory: skipping './' root@DESKTOP-1N42TVH:/home/test# ls kk.map
b、
root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv root@DESKTOP-1N42TVH:/home/test# ls abc1.csv abc2.csv abc4.csv abc6.csv abc8.csv kk.map test1.txt test2.txt test4.txt test6.txt test8.txt abc10.csv abc3.csv abc5.csv abc7.csv abc9.csv mn.ped test10.txt test3.txt test5.txt test7.txt test9.txt root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map" ! -name "mn.ped" ./ ./test8.txt ./abc1.csv ./abc8.csv ./abc3.csv ./test6.txt ./test10.txt ./test2.txt ./abc10.csv ./test1.txt ./test9.txt ./test5.txt ./abc7.csv ./test7.txt ./abc2.csv ./abc6.csv ./abc4.csv ./test3.txt ./abc5.csv ./abc9.csv ./test4.txt root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map" ! -name "mn.ped" -exec rm -rf {} \; ## 删除除kk.map和mn.ped以外的所有文件 rm: refusing to remove '.' or '..' directory: skipping './' root@DESKTOP-1N42TVH:/home/test# ls kk.map mn.ped
3、rm !实现
a、
root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv root@DESKTOP-1N42TVH:/home/test# ls abc1.csv abc2.csv abc4.csv abc6.csv abc8.csv kk.map test1.txt test2.txt test4.txt test6.txt test8.txt abc10.csv abc3.csv abc5.csv abc7.csv abc9.csv mn.ped test10.txt test3.txt test5.txt test7.txt test9.txt root@DESKTOP-1N42TVH:/home/test# rm !(kk.map) ## 删除除kk.map文件以外的所有文件 root@DESKTOP-1N42TVH:/home/test# ls kk.map
b、
root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv root@DESKTOP-1N42TVH:/home/test# ls abc1.csv abc2.csv abc4.csv abc6.csv abc8.csv kk.map test1.txt test2.txt test4.txt test6.txt test8.txt abc10.csv abc3.csv abc5.csv abc7.csv abc9.csv mn.ped test10.txt test3.txt test5.txt test7.txt test9.txt root@DESKTOP-1N42TVH:/home/test# rm !(kk.map|mn.ped) ## 删除除kk.map和mn.ped以外的所有文件 root@DESKTOP-1N42TVH:/home/test# ls kk.map mn.ped