자체 하위 디렉터리로 이동할 수 없습니다.

자체 하위 디렉터리로 이동할 수 없습니다.

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

관련 정보