Veel files verplaatsen debian

Pagina: 1
Acties:

  • Boinkie
  • Registratie: Juni 2002
  • Nu online
Hallo,

Ik moet een directory met daarin 110.000 bestanden naar een mapje old kopieren.

Maar nu krijg ik de volgende melding als ik intyp: cp *.* /old
-bash: /bin/cp: Argument list too long

Iemand enig idee wat ik als command moet intypen om een kopie van elk bestand in die map te krijgen?

Dank!

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 29-01 19:59

Bud_s

Team Anticimex & Lock

for i in *.*
do
cp $i /old
done

zo uit mijn hoofd, is ook al weer jaren geleden dat ik met *nix heb gespeeld

en als je dan ook nog ergens tussen de 'do' en 'done' een 'echo $i' zet , zie je ook welk bestand hij aan het kopieeren is :-)

[ Voor 36% gewijzigd door Bud_s op 12-07-2007 20:15 ]


  • NightBird
  • Registratie: Januari 2000
  • Laatst online: 30-01 22:25

NightBird

DPC-Crew Coding
code:
1
 cp -r . /old/
?

WatHoorJeWaar · Asobakken
Eerdere projecten: Leading Courses · Brandstof-zoeker.nl · Voertuig-zoeker.nl


Verwijderd

Bud_s schreef op donderdag 12 juli 2007 @ 20:13:

en als je dan ook nog ergens tussen de 'do' en 'done' een 'echo $i' zet , zie je ook welk bestand hij aan het kopieeren is :-)
Daar is nou die -v flag voor ;)

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 29-01 19:59

Bud_s

Team Anticimex & Lock

:-) was die vlag er ook al in 1990 ? op AT&T unix ??

Allemaal een beetje roestig voor me, maar meestal kom ik er wel

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
En weet je zeker dat je *.* bedoelt, of ben je in de war met dos?

  • Boinkie
  • Registratie: Juni 2002
  • Nu online
cp: cannot create regular file `/old/58e36edd5_4.jpg': No space left on device

Krijg ik die melding.. wat een onzin.. terwijl der nog 30 gigabyte vrij is op de schijf :s
blaataaps schreef op donderdag 12 juli 2007 @ 20:24:
En weet je zeker dat je *.* bedoelt, of ben je in de war met dos?
Ik moet elke file die in de map files/ staat verplaatsen naar files/old/

[ Voor 28% gewijzigd door Boinkie op 12-07-2007 20:28 ]


  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 30-01 04:56

zomertje

Barisax knorretje

Bud_s schreef op donderdag 12 juli 2007 @ 20:13:
for i in *.*
do
cp $i /old
done

zo uit mijn hoofd, is ook al weer jaren geleden dat ik met *nix heb gespeeld

en als je dan ook nog ergens tussen de 'do' en 'done' een 'echo $i' zet , zie je ook welk bestand hij aan het kopieeren is :-)
Bijna :P

for i in $(ls *.*)
do
cp $i /old
done

:) (heel handig, gebruik dit vaak voor meerdere databases)
(en nu word ik hier ook nog voor nerd uitgemaakt ;) )

[ Voor 5% gewijzigd door zomertje op 12-07-2007 20:31 ]

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun


Verwijderd

Verplaatsen of kopiëen? Verplaatsen met mv is meestal véél sneller.

  • Boinkie
  • Registratie: Juni 2002
  • Nu online
Verplaatsen :)

Is het dan gewoon mv * /old ?

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Boinkie schreef op donderdag 12 juli 2007 @ 20:28:

Ik moet elke file die in de map files/ staat verplaatsen naar files/old/
Dan ben je dus in de war met dos, en bedoel je eigenlijk * en niet *.*, dat betekent "alle bestanden met een . in de naam".
zomertje schreef op donderdag 12 juli 2007 @ 20:30:
[...]


Bijna :P

for i in $(ls *.*)
do
cp $i /old
done
Die ls is overbodig, de shell regelt de expansion van * (of *.*) al :)

[ Voor 6% gewijzigd door blaataaps op 12-07-2007 20:35 ]


  • Boinkie
  • Registratie: Juni 2002
  • Nu online
Ik dank u allen. Ik heb gevonden wat ik nodig had! _/-\o_

  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 30-01 04:56

zomertje

Barisax knorretje

blaataaps schreef op donderdag 12 juli 2007 @ 20:34:
[...]

Dan ben je dus in de war met dos, en bedoel je eigenlijk * en niet *.*, dat betekent "alle bestanden met een . in de naam".

[...]
Die ls is overbodig, de shell regelt de expansion van * (of *.*) al :)
Jei hebt gelijk :P Ik gebruik dit normaal met extensies, en voor het gemak had ik dat nu ook weer gedaan :)

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun


  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 29-01 19:59

Bud_s

Team Anticimex & Lock

blaataaps schreef op donderdag 12 juli 2007 @ 20:24:
En weet je zeker dat je *.* bedoelt, of ben je in de war met dos?
ik weet eigenlijk zeker dat ik * bedoel , anders copieer je alleen bestanden met een extensie 8)

achja, ik moet denk ik weer eens met debian gaan spelen, laatste tijd alleen nog maar bezig met microsoft.

Overigens wel 'grep for windows' geinstalleerd staan. moet regelmatig wat tekstfiles doorzoeken

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 07-01 22:10
Boinkie schreef op donderdag 12 juli 2007 @ 20:28:
[...]
cp: cannot create regular file `/old/58e36edd5_4.jpg': No space left on device

Krijg ik die melding.. wat een onzin.. terwijl der nog 30 gigabyte vrij is op de schijf :s
[...]

Ik moet elke file die in de map files/ staat verplaatsen naar files/old/
Je inodes zijn op. Iedere file heeft als ingang een inode. http://en.wikipedia.org/wiki/Inode . Het zijn zeker allemaal heel kleine bestandjes (<4kB)? Volgende keer bij het creëren van je filesysteem (mkfs) het aantal inodes groter opgeven.

  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

Ik zat er ook al over te denken, over die schijfruimtefoutmelding...

@ TS: je kan je inodes als volgt checken:
code:
1
[stijn@hephaistos ~]$ df -i


En dan krijg je zoiets:
code:
1
2
3
4
5
6
7
8
9
Bestandssysteem       Inodes   IGebr   IVrij IGeb% Aangekoppeld op
/dev/sda5                  0       0       0    -  /
none                  113062       1  113061    1% /dev/shm
/dev/sda6            1929536   16212 1913324    1% /home
/dev/sda7             682752      11  682741    1% /home/stijn/muziek
/dev/sda8            4038944     991 4037953    1% /home/stijn/torrents
/dev/sda9            3361920      76 3361844    1% /home/stijn/films
/dev/sda10             68320      39   68281    1% /tmp
/dev/sda11            271456   22863  248593    9% /var

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje


  • sparks
  • Registratie: December 2002
  • Laatst online: 31-01 15:51
En voor argument list to long foutmeldingen kun je het commando xargs gebruiken. Daarmee regel je dat het commando wat je daarna aanroept met het maximale aantal argumenten aanroept. Tevens is het veel efficienter, wat je nog wel eens ziet is dat iemand een find met een -exec uitvoert, dwz voor elke file die find vindt start het een proces op, doe je een -print | xargs dan worden er veel minder processen opgestart en ben je dus ook nog eens veel sneller klaar.

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

ik neem aan dat al die kleine bestandjes een soort logfiles zijn, die je nu wilt archiveren? in dat geval zou ik ze tarren en gzippen, dan nemen ze nog maar een fractie (1/10.000 ofzo) van de ruimte (en inodes) in.

Liefst per week ofzo 1 bestand creeeren, houdt het overzichtelijk. Makkelijk te doen met een cronjob.

It sounds like it could be either bad hardware or software

Pagina: 1