Não é possível mv para um subdiretório de si mesmo

4

Estou executando este script simples e estou tentando criar um cron job para que o arquivo seja copiado para o meu thumbdrive (com o novo nome)

  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

Mas estou recebendo o erro

mv: não é possível mover ‘NewLog.log’ para um subdiretório dele mesmo, ‘NewLog-2016-05-04T14: 19: 24.log’

ls -l in / media / usb mostra isso,

-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
    
por RajuBhai 04.05.2016 / 16:42

1 resposta

2

O caractere de dois pontos ( : ) não é um caractere válido em nomes de arquivos em um sistema de arquivos FAT / VFAT. A chamada de sistema rename (que é o que mv chama sob o capô) retorna o código de status EINVAL para indicar isso. A tentativa de mover um diretório para se tornar um subdiretório retorna o mesmo código de status; mv apenas lista uma das possíveis razões de erro.

Use um formato de hora diferente. O formato ISO 8601 pode ser um padrão formal, mas sua forma pontuada é irritante de lidar. Use o formulário não pontuado ou outra representação completamente. Atualmente, você não está seguindo a ISO 8601, já que omitiu a indicação de fuso horário, o que é ruim, pois torna o tempo ambíguo. Este formulário é compatível com ISO, usa o horário UTC e não inclui pontuação:

date -u '+%Y%m%dT%H%M%SZ'
    
por 05.05.2016 / 03:25