我正在尝试获取一个可以重命名和移动视频的脚本。这是我所拥有的:
#!/bin/bash
src="/mnt/Files_Apps/temp/"
dest="/mnt/Files_Apps/TFTP root/"
for file in "$src"*.*; do
newfile="${dest}$(date -r "$file" +"%Y-%m-%d %H %M %S").MOV"
mv "$file" "$newfile"
done
Run Code Online (Sandbox Code Playgroud)
当我调试输出时,我看到:
$ sudo bash -v videorename.sh
date -r "$file" +"%Y-%m-%d %H %M %S"
mv: '/mnt/Files_Apps/temp/IMG_7662.MOV' and '/mnt/Files_Apps/TFTP root/2016- 05-08 11 57 58.MOV' are the same file
date -r "$file" +"%Y-%m-%d %H %M %S"
mv: '/mnt/Files_Apps/temp/IMG_7687.MOV' and '/mnt/Files_Apps/TFTP root/2016- 05-09 16 03 39.MOV' are the same file
date -r "$file" +"%Y-%m-%d %H %M %S"
date -r "$file" +"%Y-%m-%d %H %M %S"
date -r "$file" +"%Y-%m-%d %H %M %S"
date -r "$file" +"%Y-%m-%d %H %M %S"
Run Code Online (Sandbox Code Playgroud)
src目录的详细信息:
ls -lia
total 148402
1443129 drwxrwxrwx 3 chris linuxadmin 0 Oct 9 18:12 .
26870564 drwxrwxrwx 15 chris linuxadmin 0 Oct 5 15:51 ..
1441900 -rwxrwxrwx 1 chris linuxadmin 75031725 May 8 11:57 IMG_7662.MOV
1443124 -rwxrwxrwx 1 chris linuxadmin 76930641 May 9 16:03 IMG_7687.MOV
Run Code Online (Sandbox Code Playgroud)
我已经多次更改了源目录的内容。有些文件会卡住,有些文件工作正常。我不明白为什么它会看到某些文件(都是从我的 iphone 导入的 MOV 格式)作为重复文件,特别是因为我正在将文件移动到一个新目录。任何帮助将不胜感激。
事实证明,问题在于 CIFS 共享的挂载方式。看来索引节点可能已被缓存,从而在脚本尝试写入新文件名时呈现大多数文件重复。为了解决这个问题,我在 fstab 中添加了“cache=none”并重新挂载了共享。此后我已经多次运行该脚本,没有出现任何问题。
虽然我知道问题是什么,但我仍然不完全确定为什么会出现问题。如果有人了解这对 CIFS 安装有何影响,我会洗耳恭听。