저는 이 간단한 스크립트를 실행하고 있으며 파일을 내 썸 드라이브(새 이름으로)에 복사하기 위한 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'