首页 > 解决方案 > 将文件排列到目录中时遇到问题

问题描述

我正在尝试将名称为 f##.txt(#being 数字 0-9)的文本文件组织到目录中,以使它们最终成为 d#/f#.txt。

#! /bin/bash                                                                                                                                                                                                

for i in {0..9} ;
do
    mkdir -p "$1/d$i "
    for j in {0..9};
    do
    FILE= "/$1/f$i$j.txt"
        if [ -f FILE ];
        then
            echo 'Moving!'
            mv "/$1/f$i$j.txt" "/$1/d$i/f$j.txt"
        fi
    done
done

上面的代码是我到目前为止的代码,但我不断收到错误:

CO1101/OSN2/q4-arrange.sh: line 8: /test/f00.txt: No such file or directory

我不知道我哪里错了。

测试目录在当前工作目录中

标签: linuxbash

解决方案


看起来您在 FILE= 和“/$1/f$i$j.txt”之间有一个空格。尝试删除空间,看看会发生什么。Bash 不喜欢变量赋值中的空格(即等号周围)。

希望这可以帮助。


推荐阅读