linux - 无法将文件安排到目录中

标签 linux bash

我正在尝试将名称为 f##.txt(#being a digit 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

我不知道哪里出了问题。

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

最佳答案

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

希望这对您有所帮助。

关于linux - 无法将文件安排到目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53086351/

相关文章:

php - 如何在 Linux 上安装旧的 CURL(我有旧的 PHP 版本)

windows - 在 Windows 10 bash shell 中使用 conemu 时,为什么 UP 键不显示上一个命令?

macos - 在 OS X (10.6) bash 中使用 unix 日期导致 "illegal time format"错误

windows - 如何在git bash下更改目录

Linux 命令模糊重定向

linux - Ubuntu 上的 Azure 用户定义端点无法正常工作

linux - 使用 Bash 脚本从 xdotool 搜索结果中检索单个元素

linux - Shell - 如何在消息中的某个点找到一个词

php - Linux服务器如何阻止来自多个IP地址的意外请求?

linux - 将带有空列的行添加到制表符分隔文件