如何从列表中删除某些模式文件,但另一些特定模式文件除外?

时间:2016-04-23 04:14:14

标签: 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"?

1 个答案:

答案 0 :(得分:0)

您可以使用脚本说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 {} \;