Schrift
[thread]6188[/thread]

"stat" mit Leerzeichen im Dateinamen: stat stirbt wenn leerzeichen im Namen



<< >> 6 Einträge, 1 Seite
quetzalcoatl
 2004-04-11 21:34
#81499 #81499
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
Hallo,

hab folgendes Problem:

hab einen Dateinamen im folgenden Format:

"Verzeichniss/dateiname 10.11.04.tgz"

wenn ich nun mit "stat" mir die Dateieigenschaften holen will, stirbt mir "stat" wenn im Dateinamen Leerzeichen enthalten sind. :(
Code: (dl )
@dateig=stat("$ziel/$zielname");


Hab schon was über "File::stat" gelesen und probiert - hat aber irgendwie auch nicht wirklich funktioniert.

Kennt jemand ne Lösung - ohne den Dateinamen abändern zu müssen?

Gruss,
quetzal
format_c
 2004-04-11 22:10
#81500 #81500
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Also bei mir funktioniert es super:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
format_c@server:~/perl_scripts> cat stat.pl
use strict;
use warnings;
my $file = 'test 1.txt';
print join "\n", stat $file;
print "\n";


format_c@server:~/perl_scripts> perl stat.pl
773
104845
33188
1
500
100
0
5
1081702930
1081702930
1081702930
4096
8
format_c@server:~/perl_scripts>


Sicher dass es stat ist was Probleme hat?
Welche Perlversion hast du?

Gruß Alex
quetzalcoatl
 2004-04-11 22:27
#81501 #81501
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
mies!

ich glaub du hast recht - es liegt am "tar" und open Aufruf:
Code: (dl )
open(PROG, "/bin/tar -X $excludefiles -c --$ext -vpf $ziel/$zielname  /|" ) || die "Error! can't execute tar\n";

hab nachgesehen - tar legt überhaupt kein file an - daher dann auch der Fehler mit "stat" - er hat ja dann keinen Dateinamen.

Wie kann ich denn bei open das Problem mit den Leerzeichen lösen?

Gruss,
quetzal
format_c
 2004-04-11 22:35
#81502 #81502
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=quetzalcoatl,11.04.2004, 20:27]...
Wie kann ich denn bei open das Problem mit den Leerzeichen lösen?
...[/quote]
Gar nicht weil es keins gibt.

Das hast du lediglich auf *NIX-Konsolen. Da musst du das Leerzeichen einfach durch ein \ escapen.

gruß Alex
quetzalcoatl
 2004-04-11 22:44
#81503 #81503
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
schade - sowas hab ich schon befürchtet :(

aber danke - jetzt weiß ich wenigstens bescheid :)

Gruss,
quetzal
esskar
 2004-04-11 23:55
#81504 #81504
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
unter windows löst man dies, in dem man anführungszeichen setzt...
probier mal
Code: (dl )
open(PROG, qq~/bin/tar -X $excludefiles -c --$ext -vpf "$ziel/$zielname" /|~ ) || die "Error! can't execute tar\n";
<< >> 6 Einträge, 1 Seite



View all threads created 2004-04-11 21:34.