以下是一个Bash脚本示例,可以使用它来删除除指定列表中的文件之外的所有文件:
#!/bin/bash
# 指定要保留的文件,用空格分隔每个文件名
KEEP_FILES="file1.txt file2.txt file3.txt"
# 获取当前目录下的所有文件名(除了文件夹)列表
ALL_FILES="$(ls -p | grep -v /)"
# 循环遍历所有文件,找到要删除的文件并删除
for FILE in $ALL_FILES
do
# 检查文件是否应该被保留
if [[ ! "$KEEP_FILES" =~ "$FILE" ]]; then
rm "$FILE"
echo "删除 $FILE"
else
echo "保留 $FILE"
fi
done
该脚本将删除当前目录中除$KEEP_FILES列表外的所有文件。脚本首先定义要保留的文件列表,然后使用ls -p
命令获取当前目录中的所有文件(并过滤掉文件夹),接着循环遍历所有文件,检查文件是否在$KEEP_FILES列表中,如果不在则删除该文件。脚本将输出一条消息,指示哪些文件被删除,哪些文件被保留。
请注意,该脚本可能无法删除具有特殊字符或空格等非标准字符的文件名。在这种情况下,您可能需要使用其他工具或手动删除这些文件。