Newsgroup: it.comp.os.linux.sys
Titolo: [Curiosita'] Stranezza binario Slackware 11

Per ora l'ho visto solo sulle Slack11.
Avete mai fatto un ls -l della /bin ?
Qualcuno sa cos'e' (e magari cosa serve) quell'eseguibile "[" ?
Rizio

 Rizio
Saluti,
David
-- 
 . ''`.  Debian packager! | 
http://snipurl.com/gofoxygo/
 : :'  :   User #334216   |  
http://www.hanskalabs.net/
 `. `'`   GPG: 1392B174   | 
http://www.debianizzati.org/
   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174

Rizio ha scritto:

Fatto su tutti i miei server (circa 30) tutti slackware
(10.1, 10.2, 11.0) e quel file non è presente in NESSUNO.
Non so cosa possa essere.

 e, quindi, non verrebbe riconosciuto il "[".
Non so se puo' centrare nel tua spiegazione o se ti da degli indizi 
maggiori ma quell'eseguibile usa queste(a) librerie:
rizio@darkstar:/bin$ ldd \[
         linux-gate.so.1 =>  (0xb7f89000)
         libc.so.6 => /lib/tls/libc.so.6 (0xb7e3f000)
         /lib/ld-linux.so.2 (0xb7f8a000)

 Qualcuno sa cos'e' (e magari cosa serve) quell'eseguibile "[" ?
e' un hard link a "test".  "man test" dice:
NAME
       test - check file types and compare values
SYNOPSIS
       test EXPRESSION
       [ EXPRESSION ]
       [ OPTION
-- 
|   Maurizio Loreti -- 
ROT13:ybe...@cq.vasa.vg
   |  (@_
| Un. of Padova, Dept. of Physics, Padova, Italy |  //\
|     
http://www.pd.infn.it/~loreti/mlo.html
     |  V_/_

 Non so cosa possa essere.
Argggggggggggggggggggggggghhhhhhhhhh !!!!!!!!!!!!!!!!
NO EHHHH !!!! C£"%$"£ !!!
Rizio


Nelle vecchie distribuzione se non ricordo male era un link a "test". 
Non so il motivo per cui ora sia un file diverso ma la funzione è simile.
if [ -w /etc/passwd ]; then echo "User is root"; fi
è equivalente a:
if test -w /etc/passwd ; then echo "User is root"; fi
Le due funzioni sono anche implementate come 'shell builtins' da bash.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 (10.1, 10.2, 11.0) e quel file non è presente in NESSUNO.
prova "ls /usr/bin/[" o "which [", e vedrai che c'e' :-)


 prova "ls /usr/bin/[" o "which [", e vedrai che c'e' :-)
Non ci manca un backslash ?
ls /bin/\[

 Nelle vecchie distribuzione se non ricordo male era un link a "test". 
Infatti se fosse stato un link mi sarebbe anche piaciuto ma essendo 
compilato, come dire... mi sono un po' spaventato (sempre per via del 
md5sum)

 prova "ls /usr/bin/[" o "which [", e vedrai che c'e' :-)
Confermo, anche su Debian
$ which [
/usr/bin/[
$ apt-file search /usr/bin/[
coreutils: usr/bin/[
...
$
Niente di preoccupante dunque :-)


 Niente di preoccupante dunque :-)
Ffffiuuuu..... grazie mille ^_^
Rizio

 Per ora l'ho visto solo sulle Slack11.
Confermo la presenza anche su ubuntu 7.04

 
Mica giusto... avevamo detto /bin :D
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
November, n.:
	The eleventh twelfth of a weariness.
		-- Ambrose Bierce, "The Devil's Dictionary"

Alessandro ha scritto:

Sulla 11 io ce l'ho, sulle 10.x  no


Rizio wrote:

Spinto da curiosità sono andato a vedere il sorgente in 
.../slackware-11/source/a/coreutils scompattando il file compresso ed 
ho scoperto che sono compilati dallo stesso file test.c passando la 
macro LBRACKET = 1 per generare "[".  La differenza è che "/bin/[" 
accetta le opzioni --help e --version mentre "/bintest" no.
$ /bin/[ --help
Il Changelog riporta la modifica come compatibilità con POSIX e la 
builtin di bash in data 07/2003.  In questo momento non ho accesso ai 
sorgenti di vecchie Slackware ma "[" era già presente come programma 
separato anche nella 10.2 anche se (erroneamente IMO) si trovava in 
/usr/bin e in /bin c'era il link.


 /usr/bin e in /bin c'era il link.
^_^
Tnk's
Rizio

 writes:

no.
maria 2 > which [
/usr/bin/[
maria 2 > uname -a
Linux 
mlohome.mlohome.it
 2.6.20-1.2948.fc6 #1 SMP Fri Apr 27 19:48:40
EDT 2007 i686 i686 i386 GNU/Linux
maria 3 > 


 Mica giusto... avevamo detto /bin :D
/usr/bin non è la directory giusta  :-(   Trattandosi di un programma 
necessario prima che vengano montate le partizioni deve essere in 
/bin.  Non tutte le shell hanno le equivalenti builtin.
Devono aver corretto il pacchetto delle coreutils per l'installazione 
secondo il FSF.


 Probabilmente č un sostituto di test e del suo "operatore" ([ ]).
Abbastanza sicuro: su Mac Os X 10.4 server e' proprio un link a test
EmJey
-- 
Non prendere la vita troppo sul serio... non ne uscirai mai vivo
http://www.joram.it/servizi/consulente.htm