Shell-Script
不能 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
冒號 (
:
) 字元在 FAT/VFAT 文件系統上的文件名中不是有效字元。rename
系統呼叫(在mv
後台呼叫)返回 EINVAL 狀態碼來表明這一點。試圖移動一個目錄使其成為它自己的子目錄會返回相同的狀態碼;mv
僅列出可能的錯誤原因之一。使用不同的時間格式。ISO 8601 格式可能是一個正式的標準,但它的標點形式處理起來很煩人。使用不帶標點的形式,或完全使用其他表示。由於您省略了時區指示,因此您目前沒有遵循 ISO 8601,這很糟糕,因為它使時間模棱兩可。此表單符合 ISO 標準,使用 UTC 時間,並且不包含任何標點符號:
date -u '+%Y%m%dT%H%M%SZ'