Newsgroup: it.comp.os.linux.iniziare
Titolo: Red Hat 7.2, problemi con "rm"

Ho installato RedHat 7.2 su una precedente distribuzione (RH7.1).
Su una directory di lavoro ho alcuni files che iniziano con la lettera
minuscola
mentre i files importanti iniziano con la maiuscola.
Con il comando
rm [a-z]*
nella distribuzione 7.1 cancello solo i files che
iniziano con la minuscola. Lo stesso comando sulla distribuzione 7.2
cancella TUTTI i files, anche quelli con la maiuscola. Cosa e' successo?
E' un baco di rm? (mi pare strano: rm ed il pacchetto "fileutils" in
generale e' gia'
piuttosto testato). Sbaglio io da qualche parte? dove?
Roberto Vadori

E' un baco di rm? (mi pare strano: rm ed il pacchetto "fileutils" in
]zac[
A parte che e' abbastanza normale che ad ogni modifica vengano
introdotti bugs nuovi, mi sembra (mi sembra di averlo sentito da qualche
parte, forse mentre dormivo eheheh) che la conversione della espressione
regolare venga fatta dalla shell non da rm.
Salve
          Dbg

Della Bianca Giuseppe wrote:

Vero. "regexp" e' fatto dalla shell. Tant'e' vero che ho provato a cambiare
la shell con chsh. Niente
da fare, sia con csh che con tcsh che con bash che con bash2 (e mi pare che
basti) i files con la
maiuscola spariscono. Questo non sposta il problema: il baco (ma e' un baco
o un mio sbaglio?) non
e' piu' in "rm" ma nell'implementazione di "regexp". Quello che voglio io
e' un comportamento
"normale" e conforme a cio' che ho sempre fatto su tutte le macchine UNIX.
La regular expression
[a-z]* dovrebbe prendermi tutte le stringhe che iniziano con una lettera
minuscola, lasciando fuori
quelle che invece iniziano con una maiuscola. O sbaglio?
Roberto Vadori

quelle che invece iniziano con una maiuscola. O sbaglio?
]zac[
Non sbagli, o e' un bug o hanno aggiunto una impostazione globale e di
default e' impostata su case insensitive (che e' in ogni caso un bug).
Scrivi alla redhat, conoscendoli e' piu' probabile che sia un bel bug, e
in ogni caso sti distributori di distribuzioni stanno prendendo la mania
molto brutta di cambiare il modo di lavorare dei vari comandi.
Se vanno avanti cosi passo alla debian e vadano a quel paese sti
windowizzatori in erba (se vogliono che giochino con la grafica e
lascino stare la console perdinci!).
Salve
           Dbg

 Ho installato RedHat 7.2 su una precedente distribuzione (RH7.1).
Vuoi dire che hai fatto l'upgrade piuttosto che una installazione ex-novo?
Ha mai funzionato la procedura di upgrade del CD? Secondo la mia
esperienza (dalla release 5.0 di redhat) l'upgrade da scarsi risultati ...
ma questo avviene con molti altri OS ... il risultato era analogo quando
tentavo un upgrade da WinNT 3.51 a WinNT 4.0 ...
Ti dico tutto questo perché il problema che tu hai menzionato, sulla mia
RedHat 7.2 - installata ex-novo - *non* esiste.
-- 
~Massimiliano ADAMO | Yahoo!Messenger: quetzalco_it | ICQ# 103417788
--------------------------------------------------------------------
".... signori, a voi la cultura, quella con la Q maiuscola"
Gianfranco D'angelo

RedHat 7.2 - installata ex-novo - *non* esiste.
Azzz, sono quasi contento ......

Max Adamo wrote:

Trovato! Trovato! Trovato!
Niente bachi, solo una variabile d'ambiente che nella 7.1 era evidentemente
messa
diversamente. Passo a spiegare, per chi e' interessato.
Scartabellando nel manuale della shell (man bash) l'espansione delle regular
expression e' regolata da (almeno) due fattori: una prima "espansione" dei
wildcard in stringhe, che vengono in un secondo momento ordinate. L'ordine,
la "collating sequence" determina questo comportamento. La 7.2 usa una
collating sequence che ordina i files in questo modo:
A* a* B* b* C* c* D* d* ....
 e' allora chiaro che la regular expression [a-z]* becca tutti i files
(tranne quelli con la
A maiuscola iniziale).
settando in /etc/sysconfig/i18n la variabile LC_COLLATE al valore "posix"
allora
la collating sequence e' quella posix standard, grazie a dio: i files ora
vengono ordinati
come
A* B* C* D* a* b* c* d*
ed ora tutto funziona.
Niente bachi dunque, solo una collating sequence non conforme a posix nella
7.2,
conforme a posix nella 7.1.
Potessero morire! Mi hanno fatto perdere files di input di codici FEM che mi
erano
costati giorni di lavoro.

Max Adamo wrote:

Effettivamente, a quanto ho scoperto in seguito, il problema pare sia
presente
solo nell'update, maledetto il momento in cui ho deciso di farlo.
Roberto Vadori

solo nell'update, maledetto il momento in cui ho deciso di farlo.
Beh mi sembra una cosa buona e giusta usare lo stesso flag con
significato diverso da una versione all'altra della distribuzione, mi
sembra geniale ..... quasi quasi era meglio un bug ....
Salve
          Dbg

 lascino stare la console perdinci!).
Appena posso controllo la Mandrake-8.1.
Va a finire che e` l'unica con una console affidabile :-)
ciao, Andrea

Va a finire che e` l'unica con una console affidabile :-)
Azzzz, mi sento male ...... anzi mi sento ... slack slack .....
Ciao
        Dbg

 invece iniziano con una maiuscola. O sbaglio?
Se fosse una regular expression, prenderebbe tutti i caratteri
alfabetici minuscoli.  Prova ad aprire un file di testo con less, a
premere `/' per cercare del testo usando una regexp, e a dare la
stringa `[a-z]*', e constaterai la differenza dei risultati.
Appurato che non e` una regular expression, ecco quel che succede
sulla mia Debian woody:
$ touch aquila
$ touch Aquila
$ touch aQUILA
$ touch zebra
$ touch Zebra
$ touch zEBRA
$ ls
aquila  aQUILA  Aquila  zebra  zEBRA  Zebra
$ rm [a-z]*
$ ls
Aquila  Zebra
E, se ti puo` essere utile:
$ rm --version
rm (fileutils) 4.1
Written by Paul Rubin, David MacKenzie, Richard Stallman, and Jim Meyering.
Massimiliano
-- 
The Practical Penguin's Notebook - 
http://practicaltux.sourceforge.net
Guida veloce: configurazione della posta (Fetchmail, Exim o Postfix,
Mutt).
Guide all'uso per newbie: Mutt, Emacs.

 Azzzz, mi sento male ...... anzi mi sento ... slack slack .....
In effetti.. :))))
delymyth@stargate:~/TEST$ touch Aaa
delymyth@stargate:~/TEST$ touch aaa
delymyth@stargate:~/TEST$ touch Bbb
delymyth@stargate:~/TEST$ touch bbb
delymyth@stargate:~/TEST$ rm [a-z]*   
delymyth@stargate:~/TEST$ ls -la
total 8
drwxr-xr-x    2 delymyth users        4096 Nov  7 22:33 ./
drwx--x--x   60 delymyth users        4096 Nov  7 22:33 ../
-rw-r--r--    1 delymyth users           0 Nov  7 22:33 Aaa
-rw-r--r--    1 delymyth users           0 Nov  7 22:33 Bbb
-- 
           ~~ ICQ#: 8761263 ~~ 
http://www.delymyth.net/
 ~~
            E-Mail Addy: DElyMyth [at] delymyth [dot] net
           => FREE! Hardware Anti-Virus!!! - /dev/brain <=
Powered By Slackware 8.0 on Asus L7300G - Kernel 2.4.7 - WMaker 0.70.0

 Azzzz, mi sento male ...... anzi mi sento ... slack slack .....
Per quel poco che ne ho capito, pare che sia mutato qualche
standard posix/iso/ansi/pinco-pallo e quindi tutte le
distro ci si stanno adattando.
Se la transizione e` fatta bene, la cosa dovrebbe risultare 
trasparente per l'utente (rm [a-z]* rimuovera` solo i file
con iniziale minuscola) se ci sono intoppi, l'utente si
ritrovera` nel guano.
Facendo l'upgrade 7.x-> 7.2 rischi grosso.
In genere, per un po' di tempo, la prima cosa da fare su una macchina 
che non conosci e` studiarne il comportamento prima di lanciare
un comando del genere (anche tramite script). :-(
ciao, andrea


Per carita', ubi maior... Visto che rm e' stato scritto tra gli altri da Rubin e
Stallman (gli altri due
non li conosco ma per mia ignoranza) dubito che abbia bachi, cosa che d'altra
parte sospettavo.
Difatti il problema era un altro che ho risolto, per fortuna.
Roberto Vadori

 ciao, andrea
Sono d'accordo che per prima cosa e' meglio studiare il comportamento di
una macchina che non conosci. Mi sembra pero' che questo "studio del
comportamento" debba essere fatto su obiettivi o situazioni piu'
complesse:
la compilazione del kernel con RedHat 7.1 e' un caso tipico, dove per
compilare
il kernel occorreva una versione all'osso di egcs (chiamato per carita'
di patria
da RedHat "kgcc") ma per il resto andava bene il compilatore gcc della
distribuzione. Bene, questa e' una situazione "da studiare" e da capire,
riconfigurando alcuni script di compilazione del kernel scaricato da
fuori,
ma non mi si venga a raccontare che "rm [a-z]*" richieda attenzione o
studio. E' un comando cablato nelle dita.
Giusto quindi il consiglio di "studiare il comportamento" di una
macchina,
ma io mi sono sentito fregato da una cosa che assolutamente NON avrebbe
dovuto fregarmi.
Roberto Vadori

 Difatti il problema era un altro che ho risolto, per fortuna.
Bene. :-)
