根据其他文件从文件夹中删除文件

时间:2013-11-13 05:54:36

标签: bash sed awk

我有一个名为input.txt的文本文件,如下所示。

adva
abab
dfg1
672a

我有一个名为folder1的文件夹,其中包含adva.txt,dfg1.txt,asd2.txt等文件列表。在folder1中,我只需要保留input.txt中存在的文件名。其他文件应从folder1中删除。

您的建议将不胜感激!

1 个答案:

答案 0 :(得分:3)

由于需要大量删除文件,我强烈建议安全方法。考虑一下这个脚本:

#!/bin/bash

# rename folder1
mv folder1 _folder1

# create a new dir folder1
mkdir folder1

# copy required files from _folder1 to folder1
while read l; do
    cp _folder1/$l.txt folder1
done < input.txt 

此脚本运行后验证folder1中的所有文件,如果满意,则仅使用以下内容删除_folder1中的文件夹和所有文件:

rm -rf _folder1