Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用linux删除文件_Linux_File_Directory_Delete File - Fatal编程技术网

使用linux删除文件

使用linux删除文件,linux,file,directory,delete-file,Linux,File,Directory,Delete File,这段代码是,我想给两个目录,这段代码将查看这两个目录是否包含两个包含相同信息的文件,并询问我要删除哪个文件 我已经写了这个代码,但我不知道如何写代码,将删除文件,请帮助 #!bin/bash echo "give the first directory" read firstdir echo "give the second directory" read seconddir for i in ` ls $firstdir` do echo $i t= `md5sum $firstdi

这段代码是,我想给两个目录,这段代码将查看这两个目录是否包含两个包含相同信息的文件,并询问我要删除哪个文件

我已经写了这个代码,但我不知道如何写代码,将删除文件,请帮助

#!bin/bash
echo "give the first directory"
read firstdir

echo "give the second directory"
read seconddir

for i in ` ls $firstdir`

do

echo $i

t= `md5sum $firstdir/$i`

s= `md5sum $seconddir/$i`

if [ "$t" ! = "$s" ]

then

echo " of which directory will be eliminated? $i"

read direct

( here I want the code to delete the directory ex : delete  direct/i )

fi

done
替换:

echo " of which directory will be eliminated? $i"

read direct

( here I want the code to delete the directory ex : delete  direct/i )
与:


好的,试试这个。我只是根据您的要求制定了自己的解决方案。我希望你喜欢。谢谢

#!/bin/bash

# check for a valid first directory
while true
do
    echo "Please, enter the first directory"
    read FIRST_DIR

    if [ -d $FIRST_DIR ]; then
        break
    else
        echo "Invalid directory"
    fi
done

# check for a valid second directory    
while true
do
    echo "Please, give the second directory"
    read SECOND_DIR

    if [ -d $SECOND_DIR ]; then
        break
    else
        echo "Invalid directory"
    fi
done


for FILE in `ls $FIRST_DIR`
do
    # make sure that only files will be avaluated
    if [ -f $FILE ]; then

        echo $SECOND_DIR/$FILE

        # check if the file exist in the second directory
        if [ -f $SECOND_DIR/$FILE ]; then

            # compare the two files
            output=`diff -c $FIRST_DIR/$FILE $SECOND_DIR/$FILE`

            if [ ! $output ]; then
                echo "Which file do you want to delete?
                1)$FIRST_DIR/$FILE
                2)$SECOND_DIR/$FILE
                "

                # read a choice
                read -p "(1/2)" choice

                # delete the chosen file
                case $choice in
                    1)
                        rm -v $FIRST_DIR/$FILE
                        ;;
                    2)
                        rm -v $SECOND_DIR/$FILE
                        ;;
                    *)
                        echo "ERROR invalid choice!"
                esac      
            fi
        else
            echo "There are no equal files in the two directories."
            exit 1  
        fi
    else
        echo "There are no files to be evaluated."
    fi
done

欢迎:请投票支持我的解决方案,如果你觉得它有用,请接受它。@user3630405然后接受答案-这就是堆栈系统的用途。
#!/bin/bash

# check for a valid first directory
while true
do
    echo "Please, enter the first directory"
    read FIRST_DIR

    if [ -d $FIRST_DIR ]; then
        break
    else
        echo "Invalid directory"
    fi
done

# check for a valid second directory    
while true
do
    echo "Please, give the second directory"
    read SECOND_DIR

    if [ -d $SECOND_DIR ]; then
        break
    else
        echo "Invalid directory"
    fi
done


for FILE in `ls $FIRST_DIR`
do
    # make sure that only files will be avaluated
    if [ -f $FILE ]; then

        echo $SECOND_DIR/$FILE

        # check if the file exist in the second directory
        if [ -f $SECOND_DIR/$FILE ]; then

            # compare the two files
            output=`diff -c $FIRST_DIR/$FILE $SECOND_DIR/$FILE`

            if [ ! $output ]; then
                echo "Which file do you want to delete?
                1)$FIRST_DIR/$FILE
                2)$SECOND_DIR/$FILE
                "

                # read a choice
                read -p "(1/2)" choice

                # delete the chosen file
                case $choice in
                    1)
                        rm -v $FIRST_DIR/$FILE
                        ;;
                    2)
                        rm -v $SECOND_DIR/$FILE
                        ;;
                    *)
                        echo "ERROR invalid choice!"
                esac      
            fi
        else
            echo "There are no equal files in the two directories."
            exit 1  
        fi
    else
        echo "There are no files to be evaluated."
    fi
done