Pagina 1 van 1

mv commando

Geplaatst: 10 apr 2007, 21:43
door Peterken
Yo de mannen!
Ik probeer een (heel) aantal dirs/bestanden te verplaatsen van een disk naar een andere maar krijg niet het gewenste resultaat.
Eerst had ik de 2 disks geshared maar dat neemt vééél te veel tijd in beslag en nu probeer ik het rechtstreeks met het mv commando.

Dit is hetgeen ik doe:

Code: Selecteer alles

mv MultiMedia /home/data/
en dan krijg ik volgende foutmelding

Code: Selecteer alles

mv: inter-device move failed:`MultiMedia' to `/home/data/MultiMedia'; unable to remove target: Is a directory
Door vanalles te proberen heb ik op een bepaald moment wel kunnen verplaatsen maar het stond helemaal op de verkeerde plaats.... :roll:

Geplaatst: 10 apr 2007, 22:19
door selder
mv -r voor dirs te verplaatsen ... r van recursive

En anders ... man mv :p

Geplaatst: 10 apr 2007, 22:29
door Peterken
Hey selder, die -r optie blijkt niet te bestaan op debian. :?

Code: Selecteer alles

mv --help
Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
  -f, --force                  do not prompt before overwriting
  -i, --interactive            prompt before overwrite
      --strip-trailing-slashes remove any trailing slashes from each SOURCE
                                 argument
  -S, --suffix=SUFFIX          override the usual backup suffix
  -t, --target-directory=DIRECTORY  move all SOURCE arguments into DIRECTORY
  -T, --no-target-directory    treat DEST as a normal file
  -u, --update                 move only when the SOURCE file is newer
                                 than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
      --help     display this help and exit
      --version  output version information and exit

The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable.  Here are the values:

  none, off       never make backups (even if --backup is given)
  numbered, t     make numbered backups
  existing, nil   numbered if numbered backups exist, simple otherwise
  simple, never   always make simple backups

Report bugs to <[email protected]>.

Geplaatst: 10 apr 2007, 22:42
door crapiecorn
Normaal mag dat niet uitmaken, mv gaat zoiezo recursief werken. Doe anders eerst een cp -r en dan een rm -r. Is ook wat veiliger voor de data.

Geplaatst: 10 apr 2007, 22:48
door Arrigi
Zover ik weet maakt het wel uit.. Altijd al gehad op ubuntu/debian. En het is -R, niet -r :)

Geplaatst: 10 apr 2007, 22:52
door crapiecorn
Debruineo schreef:Zover ik weet maakt het wel uit.. Altijd al gehad op ubuntu/debian. En het is -R, niet -r :)
-r, -R, --recursive, is allemaal mogelijk

Geplaatst: 10 apr 2007, 22:53
door airzimmy
gebruik find en cpio, zal impressionanter werken !
Man pages moeten veel vertellen en anders zal er wel ergens een diepgaande ??? howto op inet zijn.

Geplaatst: 10 apr 2007, 22:56
door Peterken
pfff, nu zit ik hier al uren te kloojen om wat bestanden/mappen te verplaatsen... :roll:

Ik heb 2 schijven, de 2e is gemount als /mnt/disk2
Nu wil ik van die 2e schijf de data uit /home/data/ verplaatsen naar de 1e schijf onder /home/data/
Op de een of andere manier ?kopieert/verplaatst? hij de data van de 2e schijf naar zichzelf ook al geef ik het volledige path in:

Code: Selecteer alles

mv -t /mnt/disk2/home/data/* /home/data/*
Wat doe ik verkeerd?!?

Geplaatst: 10 apr 2007, 23:02
door crapiecorn
zoiets werkt


cp -r /mnt/disk2/home/data/ /home/data/

ofwel heb je iets fout aangekoppeld

Geplaatst: 11 apr 2007, 00:10
door Styno
Peterken schreef:Wat doe ik verkeerd?!?
Probeer het volgende eens:

Code: Selecteer alles

cd /home/data
mv /mnt/disk2/home/data/* .
Dit kan problemen geven als de * meer dan 1024? strings bevat die niet volledig op de command line ge-expand kunnen worden (wat een zin!!)

Geplaatst: 11 apr 2007, 00:22
door Peterken
Styno, ontbreekt het doel niet in de 2de regel?

Geplaatst: 11 apr 2007, 00:30
door Styno
Goed kijken der staat een puntje "."
Omdat er op de lijn erboven een cd commando staat zit je reeds in de juiste directory en moved je move commando met dat puntje de gegevens naar de huidige (en correcte) dir.

Geplaatst: 11 apr 2007, 03:26
door crapiecorn
Ja puntje of $PWD zal ook nog wel werken. Ik snap eigenlijk niet wat er mis kan gaan. Anders moet je mv als root runnen en daarna een chown doen.(of als niets werkt gewoon even via gui knippen/plakken).

pointer: /home is eigenlijk niet de plaats voor map data, behalve als je een gebruiker data hebt. Het is ook logisch dat mv geen -r optie heeft, als je de root map knipt naar waar gaat de inhoud anders. Deze moet wel met de root map meegaan.

Geplaatst: 11 apr 2007, 11:13
door ban
crapiecorn schreef: Ik snap eigenlijk niet wat er mis kan gaan.
2 dingen:

1. zoals styno al vermeld kan het dat je source dir zoveel bestanden bevat dat de "*" niet werkt. unix probeert om de * in je commandoregel te vervangen door alle bestandnamen op een rij, is die rij te lang, dan is je commando te lang en zal niet uitgevoerd worden.
2. zou het kunnen dat je bestandnamen spaties bevatten ? zoja dan zal deze methode niet werken, aangezien alweer de bestandnamen "geplakt" zullen worden waar je een * zet, maar met die spaties zal unix dit zien als meerdere commando's en resulteren in errors.

de meest eenvoudige manier is om het te doen zoals je eerst probeerde:

als root:
cd /mnt/disk2/home/data/
mv MultiMedia /home/data/

Als dat niet werkt stuur je best even het resultaat van "df -h"

Geplaatst: 11 apr 2007, 13:11
door airzimmy
en dan valt je systeem uit op 50% van je 20G, goed bezig!

Code: Selecteer alles

find /mnt/disk2/home/data/ -type f -print |cpio -padmv  /home/data/ 
cpio is den tool van de sysadmin, dat heeft zo zijn redenen....

ps, je zou het trouwens ook met rsync kunnen doen

Code: Selecteer alles

rsync -avz --delete /mnt/disk2/home/data/  /home/data/
Beide commando's kopieren de inhoud van /mnt/disk2/home/data/ naar /home/data/

Geplaatst: 11 apr 2007, 17:02
door crapiecorn
airzimmy schreef:en dan valt je systeem uit op 50% van je 20G, goed bezig!

[
Door gewoon cp te gebruiken kan je zoiets toch ook vermijden ?

Geplaatst: 11 apr 2007, 17:16
door ban
airzimmy schreef:en dan valt je systeem uit op 50% van je 20G, goed bezig!
mja, inderdaad, good point.
ik houd daar niet echt rekening mee, omdat dat zeker 10 jaar geleden moet zijn dat ik nog zoiets meegemaakt heb, maar gelijk heb je natuurlijk.

Van mijn "mv" kan je eigenlijk beter een "cp -R" maken, of een van de andere mogelijkheden.

Geplaatst: 28 apr 2007, 16:16
door Peterken
@ Styno: oops, niet meteen gezien.

@ crapiecorn: ik deed dat als root. Is die /home niet bedoeld voor userdata dan?

@ ban: het waren idd wel veel bestanden en ja, ook zingeliedjes met spaties in de bestandsnamen. Blijkbaar is dat om 2 redenen uit den boze...

@ airzimmy: wat doet dat eerste commando?

Geplaatst: 28 apr 2007, 17:37
door crapiecorn
Peterken schreef:
@ crapiecorn: ik deed dat als root. Is die /home niet bedoeld voor userdata dan?
Ja, 1 niveau verder : /home/user/data