Bash脚本删除在另一个文件夹中的文件,如果这两个文件夹都存在扩展名为*.c的文件。

编写一个shell脚本,如果一个目录中的C源文件在另一个目录的结构中,就删除它们。命令行的第一个参数是C源所在的目录,第二个参数是搜索开始的目录。

如果可能的话,我需要完整的代码,因为我写过这个,但对我的问题不起作用。

#!/bin/bash
if [ $# -ne 2 ]
then 
        echo "for execution complete the line of command: $0 dir1 dir2"
        exit 1
else 
        if [ ! d ~/$2 ]
        then
        echo "write a directory in order to do the search"
        exit 1
        fi
fi
for fis in *.c
do
        cat $fis
        rm -i $fis
done

以上是我试过的方法

解决方案:

首先你需要得到所有文件的列表,存在于第二个目录中。这个列表应该保存在一个文件中。搜索可以这样做。

find <second_directory> -type f -name *.c >list_of_files.txt

然后你写一个循环,在第一个目录下进行检查 list_of_files.txt,如果文件存在于那里(使用 grep 的文件名),将其删除。

由于你是在Linux下工作(没有回收站),我建议把要删除的文件名写到一个临时文件中,如果正确的话,只需在文件中添加一个新的文件名。rm 在它的前面。

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/16112.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表评论

登录后才能评论