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.
"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
soms doet microsoft ook al eens iets goed hé

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
soms doet microsoft ook al eens iets goed hé

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
$