mv
命令无法找到我尝试重命名的文件。
我已经看过涉及双引号,目录扩展和变量评估的解决方案,但没有解释为什么这个Bash脚本不能工作。
我还确认路径正确且文件存在。如果有人可以提供帮助,我会非常感激。
以下是有问题的代码并附有解释:
BASEPATH="/media/matt/DATA/Flow_Processing/fvv/rafa_1_ifsc/STEA_flow/"
FRSTFRM=00030
LSTFRM=00270
FRSTCAM=001
LSTCAM=012
for cam in $(eval echo "{$FRSTCAM..$LSTCAM}")
do
for frame in $(eval echo "{$FRSTFRM..$LSTFRM}")
do
SRC="${BASEPATH}${cam}/flow/FVV_0_${cam}_${frame}_flow.flo"
DST="${BASEPATH}${cam}/flow/FVV_2_${cam}_$frame.flo"
mv -f $SRC $DST
done
done
基本上我试图使用填充字符串的$cam
和$frame
变量来迭代文件系统结构。
我尝试从以下位置更改每个文件夹中的文件名:
FVV_0_<cam num>_<frame num>_flow.flo
到
FVV_2_<cam num>_<frame num>.flo
e.g。对于摄像机1和帧1,文件更改为:
FVV_0_001_00001_flow.flo
到
FVV_2_001_00001.flo
我打印了$SRC
和$DST
,他们输出了我期望的确切路径。问题是,尽管如此,mv
产生了这个错误:
"cannot stat: <file> : no such file or directory"
e.g。
SRC:
/media/matt/DATA/Flow_Processing/fvv/rafa_1_ifsc/STEA_flow/005/flow/FVV_0_005_00190_flow.flo
DST:
/media/matt/DATA/Flow_Processing/fvv/rafa_1_ifsc/STEA_flow/005/flow/FVV_2_005_00190.flo
mv
错误:
mv: cannot stat '/media/matt/DATA/Flow_Processing/fvv/rafa_1_ifsc/STEA_flow/005/flow/FVV_0_005_00190_flow.flo': No such file or directory
答案 0 :(得分:2)
我通过修复已安装媒体的写权限错误来解决它。
我的/etc/fstab
文件要求我在NAS媒体驱动器的挂载选项末尾添加"vers=1.0"
。
感谢@Azeem的帮助,他帮助我意识到我没有获得访问驱动器上文件的权限。