无法 mv 到其自身的子目录

无法 mv 到其自身的子目录

我正在运行这个简单的脚本,并且尝试创建一个 cron 作业,以便将文件复制到我的拇指驱动器(使用新名称)

  sudo cp /home/pi/NewLog.log /media/usb
  sleep 20
  cd /media/usb
  sudo mv -f NewLog.log NewLog-$(date '+%FT%T').log
  sudo cp /dev/null /home/pi/NewLog.log

但我收到错误

mv:无法将“NewLog.log”移动到其自身的子目录“NewLog-2016-05-04T14:19:24.log”

/media/usb 中的 ls -l 显示了这一点,

-rwxr-xr-x 1 root root   42747 Nov 30 16:18 backup xml.txt   
-rwxr-xr-x 1 root root  407517 Apr 28 11:07 Comparision log.log
-rwxr-xr-x 1 root root    4174 Apr 29 18:16 Friday.txt
 drwxr-xr-x 2 root root   16384 May  4 14:12 Logs
-rwxr-xr-x 1 root root  594588 May  3 09:28 MachineHMAX___.log
-rwxr-xr-x 1 root root  737280 May  4 17:23 NewLog.log
-rwxr-xr-x 1 root root  415960 May  3 10:21 NewLog__.txt
-rwxr-xr-x 1 root root  267989 Apr 28 09:28 NewLog.txt
 drwxr-xr-x 2 root root   16384 May 17  2015 System Volume Information
-rwxr-xr-x 1 root root  276588 Apr 29 11:05 Thur_a.txt
-rwxr-xr-x 1 root root  183600 Apr 29 11:05 Thur_b.txt
-rwxr-xr-x 1 root root  276370 Apr 28 11:22 Thurs.txt
-rwxr-xr-x 1 root root  460185 Apr 28 13:42 Thur.txt
-rwxr-xr-x 1 root root  676739 May  3 13:44 Tuesday.Log
-rwxr-xr-x 1 root root    8032 Apr 23 17:36 unix2dos.zip
-rwxr-xr-x 1 root root 7364727 May  4 08:45 Wednesday.txt

答案1

冒号 ( :) 字符不是 FAT/VFAT 文件系统上文件名中的有效字符。系统rename调用(即mv幕后调用)返回 EINVAL 状态代码来指示这一点。尝试将目录移动为自身的子目录会返回相同的状态代码;mv仅列出可能的错误原因之一。

使用不同的时间格式。 ISO 8601 格式可能是一个正式标准,但其标点符号形式处理起来很烦人。使用不加标点的形式,或完全使用其他表示形式。无论如何,您当前并未遵循 ISO 8601,因为您省略了时区指示,这很糟糕,因为它使时间变得模糊。此表单符合 ISO 标准,使用 UTC 时间,并且不包含任何标点符号:

date -u '+%Y%m%dT%H%M%SZ'

相关内容