我正在运行这个简单的脚本,并且尝试创建一个 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'