linux - 如何从列表中删除除其他特定模式文件之外的某些模式文件?

标签 linux bash rm

我有许多名为 chr1_gene_*.raw 的文件。我想保留其中一些。所以我使用以下命令。

find . -maxdepth 1 -type f -name "*.raw" -not -name "chr1_gene_448.raw" -not -name "chr1_gene_1914.raw" -not -name "chr1_gene_2456.raw" -not -name "chr1_gene_1554.raw" -not -name "chr1_gene_2024.raw" -not -name "chr1_gene_35.raw" -not -name "chr1_gene_509.raw" -not -name "chr1_gene_1952.raw" -not -name "chr1_gene_575.raw" -not -name "chr1_gene_2249.raw" -not -name "chr1_gene_272.raw" -not -name "chr1_gene_2158.raw" -exec rm -rf {} \;

有时我想保留的文件太多。我不想多次输入“-not-name”。有没有办法将列表放入“-not-name”中?

最佳答案

您可以使用 notnamescript.sh 脚本来实现此目的:

#!/bin/bash
while read line
do
echo "-not -name " $line
done<notnamelist

将所有 -not -name 名称放入名为 notnamelist 的文件中。记得那里 不应有尾随空行。

 find . -maxdepth 1 -type f -name "*.name" $( ./notnamescript.sh ) -exec rm -rf {} \;

关于linux - 如何从列表中删除除其他特定模式文件之外的某些模式文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36806557/

相关文章:

linux - 具有 shell 交互的自动启动脚本

带/不带选项的 BASH 脚本和参数

linux - 如何删除未打开的文件?

linux - OpenShift 存储库的 Git 克隆在 Linux 中挂起,但在 Windows 中不挂起

linux - 安装Eclipse时出错

json - 来自 bash 脚本的 ARM.Template。未终止的字符串。预期的分隔符 :

java - 使用 Java 运行 shell 脚本将文件复制到 docker 返回错误

linux - rm不能删除以 "--"开头的文件

java - 如何防止用户删除 JVM 正在使用的文件

c++ - 吞吐量从 4k 下降到 9 条消息,调整了 adm 更改