Pagina 1 van 1

Bestanden in directory een extensie geven

Geplaatst: 13 feb 2011, 11:12
door AnD
Ik heb hier een deel bestanden die geen extensie hebben, enkele heb ik de extensie smc (het zijn roms) gegeven,
maar hoe kan ik die in één keer een extensie geven ipv die één voor één af te gaan ?
Het is onder ubuntu (xbmc live)

Re: Bestanden in directorry een extensie geven

Geplaatst: 13 feb 2011, 16:14
door Sub Zero
for i in `ls | grep -v *.smc` ; do mv $i ${i}.smc ; done

Dit zal alle bestanden die nog geen .smc extensie hebben hernoemen naar filename.smc

Re: Bestanden in directorry een extensie geven

Geplaatst: 13 feb 2011, 19:44
door AnD
Ik heb dat eens geprobeerd, maar dan krijg ik wat meldingen.

Code: Selecteer alles

mv: cannot stat `Binary': No such file or directory
mv: cannot stat `file': No such file or directory
mv: cannot stat `matches': No such file or directory
En ik heb gezien dat 1 bestand (alhoewel er 2 smc bestanden in die directory zijn) dat al een *.smc bestand was er telkens .smc bijkomt te staan.
Ik heb dat commando 2 maal uitgevoerd en nu heb ik dus bij 1 bestand => Zoop.smc.smc.smc
Vreemd dat het andere smc bestand niet is aangepast, maar gewoon is gebleven.

Re: Bestanden in directorry een extensie geven

Geplaatst: 14 feb 2011, 20:27
door Ofloo

Code: Selecteer alles

find . -not -iname "*.smc" -type f -exec mv {} {}.smc \;
misschien

Code: Selecteer alles

find . -not -iname "*.smc" -type f -exec mv "{}" "{}.smc" \;
voorbeeld:

Code: Selecteer alles

$ ls
123  234  456.smc  567  67 8
$ find . -not -iname "*.smc" -type f -exec mv {} {}.smc \;
$ ls
123.smc  234.smc  456.smc  567.smc  67 8.smc 
TIP: de quotes hangen af van de shell omgeving dat je het uitvoert, soms is het vereist soms niet. Voeg -maxdepth 1 toe als je niet recursive wil.

Re: Bestanden in directorry een extensie geven

Geplaatst: 14 feb 2011, 21:17
door duizend
opstarten met een dos disketteke ...

ren *.* *.smc

et voila

of moet het perse in unix

Re: Bestanden in directorry een extensie geven

Geplaatst: 14 feb 2011, 21:41
door ubremoved_15739
TS vermeldt Ubuntu.
Dan zal je met een DOS diskette niet ver geraken....
Nog afgezien van de grootte van de HD. :wink:

"Rename" is normaliter ook beschikbaar in bash: linkje.

Re: Bestanden in directorry een extensie geven

Geplaatst: 15 feb 2011, 17:22
door Ofloo
duizend schreef:opstarten met een dos disketteke ...

ren *.* *.smc

et voila

of moet het perse in unix
dat werkt niet ! omdat er bestanden zijn die niet *.* matchen bv "blah" moet blah.smc worden met jouw methode gebeurd dit niet !

dos ondersteund ook geen ext1~3 bij mijn weten en als jij altijd met dos diskettekes ligt te prutsen telkens als je iets in je console moet doen amai dan. is meer werk dan gewoon ze één voor één zelf te rename.

ook nog niet elk systeem kan zomaar ff afgesloten worden, toch zeker niet voor zulk een belachelijke taak, ..

hij zou rename wel kunnen gebruiken om de dubbele extensies er uit te halen.

Re: Bestanden in directorry een extensie geven

Geplaatst: 15 feb 2011, 18:29
door AnD

Code: Selecteer alles

    find . -not -iname "*.smc" -type f -exec mv "{}" "{}.smc" \;
Dit commando heeft ze allemaal perfect aangepast ;)

Re: Bestanden in directorry een extensie geven

Geplaatst: 15 feb 2011, 20:29
door duizend
Ofloo schreef:
dat werkt niet ! omdat er bestanden zijn die niet *.* matchen bv "blah" moet blah.smc worden met jouw methode gebeurd dit niet !

dos ondersteund ook geen ext1~3 bij mijn weten en als jij altijd met dos diskettekes ligt te prutsen telkens als je iets in je console moet doen amai dan. is meer werk dan gewoon ze één voor één zelf te rename.

ook nog niet elk systeem kan zomaar ff afgesloten worden, toch zeker niet voor zulk een belachelijke taak, ..

hij zou rename wel kunnen gebruiken om de dubbele extensies er uit te halen.
werkt wel, dos renamed dan ALLE files ook blah zonder extensie.

Accessing Ext from DOS, Windows 9x/NT and other Unixes (LTools)
Homepage: http://www.it.fht-esslingen.de/~zimmerm ... tools.html

Ik toon gewoon aan dat het met dos ongeloofelijk simpel kan
als ge ziet wat je in unix moet intypen ...

topicstarter heeft er minstens twee dagen over gedaan om een oplossing in unix te vinden.
dan is het opstarten met een dos disketteke toch veeeel rapper :angel:

soms doet microsoft ook al eens iets goed hé :twisted:

Re: Bestanden in directorry een extensie geven

Geplaatst: 15 feb 2011, 21:15
door AnD
topicstarter heeft er minstens twee dagen over gedaan om een oplossing in unix te vinden.
dan is het opstarten met een dos disketteke toch veeeel rapper :angel:

soms doet microsoft ook al eens iets goed hé :twisted:
Ik heb geen 2 dagen gezocht want Ofloo heeft me de oplossing gegeven
en gisteren kon ik het niet testen omdat ik het te druk had anders wist ik het maandag al. ;)
Microsoft heeft DOS trouwens niet opgebouwd van scratch maar het is ooit gekocht geweest van Tim Paterson,
die man had CP/M-80 gemaakt en Microsoft heeft het wat aangepast om aan de wensen van IBM te voldoen.

Edit: je commando onder dos werkt wel, dat is juist :)

Re: Bestanden in directory een extensie geven

Geplaatst: 16 feb 2011, 21:37
door Ofloo
volgens mij niet een bestand zonder extensie heeft geen . dus * < match all . < match dot * < match all dus volgens mij zolang er geen extensie aan het bestand hangt wordt dit niet opgenomen, kan me vergissen onder dos is ondertussen zeker al 10 jaar geleden dat ik het nog gebruikt hebt maar !!! onder linux werkt dit allesinds niet.

Code: Selecteer alles

$ ls
blah  blah.txt
$ ls *.*
blah.txt
$ for x in *.*; do echo $x; done
blah.txt
$ for x in *; do echo $x; done
blah
blah.txt
$ 

Re: Bestanden in directory een extensie geven

Geplaatst: 16 feb 2011, 23:05
door ubremoved_539
Alles renamen zonder extensie kan je in DOS gewoon door REN *. *.ext

Als je REN *.* *.ext doet ga je dubbele extensies krijgen voor files die al een extensie hebben.

Kan Linux dit niet *. ?

Re: Bestanden in directory een extensie geven

Geplaatst: 17 feb 2011, 07:54
door AnD
Ja ik bedoelde voor bestanden die geen extensie hebben, die krijgen dan een extensie in dos,
maar zoals je zegt ga je een dubbele extensie krijgen als er al bestanden zijn die dus een extensie hebben.

Re: Bestanden in directory een extensie geven

Geplaatst: 17 feb 2011, 12:37
door Ofloo
r2504 schreef:Alles renamen zonder extensie kan je in DOS gewoon door REN *. *.ext

Als je REN *.* *.ext doet ga je dubbele extensies krijgen voor files die al een extensie hebben.

Kan Linux dit niet *. ?

Code: Selecteer alles

$ ls *.
ls: kan geen toegang krijgen tot *.: Bestand of map bestaat niet
$ 
waarschijnlijk omdat directory . aanwezig is, gewoon * wel maar punt is dat je dan alles van naam verandert, ..

TIP: trouwens als je de dubbele er wil uithalen kan dit met basename, voor 3dubbele moet je het wel 2 keer draaien.

Code: Selecteer alles

$ ls
1 23.smc.smc  123.smc.smc  234.smc.smc.smc  456.smc  blah
$ find -iname "*.smc.smc" -type f -exec sh -c 'mv "{}" "$(basename "{}" .smc)"' \;
$ ls
1 23.smc  123.smc  234.smc.smc	456.smc  blah
$ find -iname "*.smc.smc" -type f -exec sh -c 'mv "{}" "$(basename "{}" .smc)"' \;
$ ls
1 23.smc  123.smc  234.smc  456.smc  blah
$