Hi Warum geht dies nicht: for i in *; do mv $i $i.tar; done Das sollte doch alle Dateien (ohne Endung) in .tar umbenennen. Sehr merkwürdig: macht danach mal ein "ls -l". Ich kann mir das nicht erklären. ChristophR.
On 11 Mar 2001, at 16:27, Christoph Raucher wrote:
for i in *; do mv $i $i.tar; done
Das sollte doch alle Dateien (ohne Endung) in .tar umbenennen. Sehr merkwürdig: macht danach mal ein "ls -l". Ich kann mir das nicht erklären.
Hab ich irgendwas nicht verstanden? pluto:/ # mkdir mist pluto:/ # cd mist pluto:/mist # touch test1 pluto:/mist # touch test2 pluto:/mist # touch test3 pluto:/mist # touch test4 pluto:/mist # for i in *; do mv $i $i.tar; done pluto:/mist # l total 8 drwxr-xr-x 2 root root 4096 Mar 11 16:35 ./ drwxr-xr-x 26 root root 4096 Mar 11 16:35 ../ -rw-r--r-- 1 root root 0 Mar 11 16:35 test1.tar -rw-r--r-- 1 root root 0 Mar 11 16:35 test2.tar -rw-r--r-- 1 root root 0 Mar 11 16:35 test3.tar -rw-r--r-- 1 root root 0 Mar 11 16:35 test4.tar Alex
Hallo Christoph, On Sonntag, 11. März 2001 16:27 Christoph Raucher wrote:
Warum geht dies nicht:
for i in *; do mv $i $i.tar; done
das geht solange gut, wie die unzubenennenden Dateien keine Leerstellen, Sonderzeichen o.ä. enthalten. Sollte aber eine Datei den Namen "wort1 wort2" haben, würde mv in obenstehender Form wort1 und wort2 als getrennte Argumente auffassen - das gibt dann natürlich Probleme. So müsste es gehen: $ for i in *; do mv "$i" "$i".tar; done ^ ^ ^ ^
Ich kann mir das nicht erklären.
Ich hoffe, das hat sich eben geändert. ;-) Gruß, Stephan -- Stephan Hakuli | mailto: stephan@hakuli.de | * GnuPG/PGP-Key * | callto: 01 71 - 651 89 43 | available, please | surfto: http://www.hakuli.de | visit my homepage *Homepage updated: Short survey on SSH-login with 'authorized_keys'*
* Christoph Raucher schrieb am 11.Mär.2001:
Warum geht dies nicht:
for i in *; do mv $i $i.tar; done
Das sollte doch alle Dateien (ohne Endung) in .tar umbenennen.
Wieso ohne Endung? * past auf alles, außer auf . am Anfang. Ansonsten hat der . bei Linux keine besondere Bedeutung. * paßt auf a und auf a.b und auf a.b.c und auch auf a.... nicht aber auf .b Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
Am Son, 11 Mär 2001 schrieb Christoph Raucher:
Hi
Warum geht dies nicht:
for i in *; do mv $i $i.tar; done
Das sollte doch alle Dateien (ohne Endung) in .tar umbenennen. Sehr merkwürdig: macht danach mal ein "ls -l". Ich kann mir das nicht erklären.
Hi, "for i in *" selektiert *alle* Dateien, nicht nur die ohne Endung..., wenn Du die ohne Endung wilst, mußt Du die auswählen. # (mir fällt gerade keine expr für "kein Punkt" ein) for i in * do j=`echo $i | tr -d '.'` if ( test $i = $j ) then mv $i $i.tar fi done ######### -- may the tux be with You! Joerg Thuemmler sysadmin@vordruckleitverlag.de
participants (5)
-
Alex Klein
-
Bernd Brodesser
-
Christoph Raucher
-
Joerg Thuemmler
-
Stephan Hakuli