在进行Linux 操作的时候,我们常常需要反选操作,

下面以删除文件的场景,去示例如何在Linux 命令中使用反选操作



反选操作的几种思路

1.利用 grep -v 反选操作  (推荐,支持正则表达式)

2. shopt -s extglob      (打开extglob模式), 然后利用 !(filename1| filename2)

shopt 指令参考我的另一篇文章

https://blog.csdn.net/u010003835/article/details/80760946


示例

完成功能:删除目录下除了test 文件以外的其他文件以及文件夹


准备脚本

#!/bin/bash


ROOT_PATH=$(dirname $(readlink -f $0))

echo $ROOT_PATH

cd $ROOT_PATH
cd four

echo "sss" >> online
echo "sss" >> .tmp
echo "sss" >> test
mkdir five



执行脚本,初始化环境


原始目录




1.利用 grep -v 反选操作  (推荐,支持正则表达式)

示例:

rm -rf `ls -a | grep -v "^tes"




2. shopt -s extglob      (打开extglob模式), 然后利用 !(filename1| filename2)

shopt -s extglob

 rm -rf !(test)




Logo

更多推荐