我正在尝试将名称为 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/