PDA

Visualizza la versione completa : strano comportamento del comando mv


ganesha
17-02-2016, 16:30
Buonasera a tutti!

Oggi mi è successa una cosa molto strana con il comando mv (strana perché evidentemente non conosco bene questo comando).
Volevo spostare il file /etc/cntlm.conf nella mia home (/home/ganesha) ed ho dato il seguente comando:

ganesha@miopc ~ $ sudo mv /etc/cntlm.conf ./*


appena eseguito il comando sono spariti tutti i file che erano nella Scrivania e sono sparite le cartelle Documenti, Immagini, ecc...

Poi ho scoperto che tutte quelle cartelle sparite erano state spostate nella cartella Video :confused:

Qualcuno mi può spiegare cosa ho fatto di preciso con quel comando?

sacarde
17-02-2016, 17:38
sicuro che hai passato solo i 2 parametri?
/etc/cntlm.conf e
./* o c'era qualche spazio... guarda nella history

ganesha
18-02-2016, 00:22
Sì, scritto proprio così:

sudo mv /etc/cntlm.conf ./*

l'ho lanciato anche su una macchina virtuale con ubuntu 15.10, sempre dalla home dell'utente, e mi ha dato lo stesso risultato (in questo caso ho spostato il file /etc/fuse.conf, ma è uguale).

ganesha
18-02-2016, 08:54
gan@VirtualBox64:~$ sudo mv -vi /etc/fuse.conf ./*
"/etc/fuse.conf" -> "./Video/fuse.conf"
"./Documenti" -> "./Video/Documenti"
"./examples.desktop" -> "./Video/examples.desktop"
"./Immagini" -> "./Video/Immagini"
"./Modelli" -> "./Video/Modelli"
"./Musica" -> "./Video/Musica"
"./Pubblici" -> "./Video/Pubblici"
"./Scaricati" -> "./Video/Scaricati"
"./Scrivania" -> "./Video/Scrivania"
gan@VirtualBox64:~$

sacarde
18-02-2016, 09:07
ok i 2 parametri vengono presi come "sorgenti"

non capisco la scelta di muovere dentro la dir "Video"

ganesha
18-02-2016, 10:25
esatto.

In realtà in miopc mi ha messo tutto (compresa la cartella Video) nella dir "VirtualBox VMs", quindi sembra che metta tutto nell'ultima cartella in ordine alfabetico...

ganesha
18-02-2016, 10:31
gan@VirtualBox64:~$ ls
Documenti examples.desktop Immagini Modelli Musica Pubblici Scaricati Scrivania Video
gan@VirtualBox64:~$ mkdir W9
gan@VirtualBox64:~$ mkdir W1
gan@VirtualBox64:~$ mkdir w1
gan@VirtualBox64:~$ ls
Documenti examples.desktop Immagini Modelli Musica Pubblici Scaricati Scrivania Video w1 W1 W9
gan@VirtualBox64:~$ sudo mv -vi /etc/fuse.conf ./*
[sudo] password di gan:
"/etc/fuse.conf" -> "./W9/fuse.conf"
"./Documenti" -> "./W9/Documenti"
"./examples.desktop" -> "./W9/examples.desktop"
"./Immagini" -> "./W9/Immagini"
"./Modelli" -> "./W9/Modelli"
"./Musica" -> "./W9/Musica"
"./Pubblici" -> "./W9/Pubblici"
"./Scaricati" -> "./W9/Scaricati"
"./Scrivania" -> "./W9/Scrivania"
"./Video" -> "./W9/Video"
"./w1" -> "./W9/w1"
"./W1" -> "./W9/W1"
gan@VirtualBox64:~$ ls
W9
gan@VirtualBox64:~$

sacarde
18-02-2016, 11:10
qui spiega

http://unix.stackexchange.com/questions/84166/what-does-mv-without-specifying-destination-do

il globbing viene espanso prima de eseguire "mv" , quindi l'ultima dir e' la destinazione

ganesha
18-02-2016, 11:30
Ah ecco

quindi è come se avessi scritto:

mv /etc/cntlm.conf Documenti examples.desktop Immagini Modelli Musica Pubblici Scaricati Scrivania Video

e quindi prende l'ultima dir come destinazione.

Grazie!
:unz:

ganesha
18-02-2016, 11:42
inoltre, se l'ultimo elemento fosse stato un file invece di una dir, avrei ricevuto un errore:

gan@VirtualBox64:~$ touch w
gan@VirtualBox64:~$ ls
Documenti examples.desktop Immagini Modelli Musica Pubblici Scaricati Scrivania Video w
gan@VirtualBox64:~$ mv ./*
mv: l'obiettivo "./w" non è una directory

Loading