Newsgroup: it.comp.os.linux.iniziare
Titolo: capire se chiavetta è sda sdb o come si chiama

scusate... devo dare un comando che operi su una chiavetta... e non 
sull'hd... c'è modo per capire se la chiavetta è sda, sdb o cosa...
 
per quanto non mi piaccia windows... A, B, C: erano molto più semplici!

 per quanto non mi piaccia windows... A, B, C: erano molto più semplici!
 
Affatto,il metodo "linux" e' molto piu' efficiente IHMO.
 

 Affatto,il metodo "linux" e' molto piu' efficiente IHMO.
 
Indubbiamente, peccato che il tuo sia sbagliato (o meglio, pieno di "rumore") :)
 
[enrico@whiterabbit ~]$ udevadm info -q all -n /dev/sda|grep BUS|cut -d '=' -f 2
ata
[enrico@whiterabbit ~]$ udevadm info -q all -n /dev/sde|grep BUS|cut -d '=' -f 2
usb
[enrico@whiterabbit ~]$
 
Enrico

 fdisk -l
 
 
provato... non fa assolutamente nulla...
 


Veramente mi riferivo alla differenza tra A: B: C: alla windows e 
sda1,sdb2,sdc3 alla linux,quanto al tuo metodo,puoi chiarire meglio?
 
gli unici risultati sono ata o usb ma non e' certo illuminante su cosa 
sia collegato e dove,
si potrebbero usare mount oppure tail -f /var/log/syslog innestanto la 
periferica oppure journalctl -f a seconda della distro (sempre prima di 
collegare la periferica).
 
per quanto riguarda l'OP,temo trattasi di troll,non puo' scrivere che 
fdisk -l "non fa assolutamente nulla",a meno che la distribuzione (che 
non cita) non sia una live...
 

 devo dare un comando che operi su una chiavetta...
 
Se il comando e` da eseguire nel momento in cui la chiavetta viene 
agganciata al pc, udev e` tuo amico
 
Enrico

 non cita) non sia una live...
 
Non direi, se lo ha lanciato da utente normale l'unica cosa che si puo` dire 
e` che ha ragione:
 
[enrico@whiterabbit ~]$ fdisk -l
[enrico@whiterabbit ~]$ sudo fdisk -l
 
Disk /dev/sda: 80.0 GB, 80026361856 bytes, 156301488 sectors
[..]
[enrico@whiterabbit ~]$ 
 
Enrico


 
sudo fdisk -l
 
dï¿œ risultati
 
fdisk -l
 
non dï¿œ risultati.
 
poi vedi tu se sono troll o no...


lsblk ti può aiutare a vedere cosa cè nella directory standard di 
mounting per esempio /media in alcune distribuzioni, pero' devi prima 
reperire dove monta automaticamente la distro i device.
 
sdc      8:32   0 931,5G  0 disk
├─sdc1   8:33   0    32G  0 part /media/recovery
├─sdc2   8:34   0   293G  0 part /media/old
└─sdc3   8:35   0 606,6G  0 part /media/new
 
sdc      8:32   1   7,6G  0 disk
└─sdc1   8:33   1   7,6G  0 part /media/sdc1-usb-Sony_Storage_Med
 
però ijn questi due esempi fatti uno dopo l'altro, non distingue tra 
chiavetta o hd esterno.
se cerchi /media dovresti identificare la chiavetta. Magari prima 
identifichi la regola di mounting che di solito è in:
/etc/udev/rules.d/11-media-by-label-auto-mount.rules
 
ciao


MI SONO dimenticato di dire che 1 = removable
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
 
sdc      8:32   1   7,4G  0 disk
├─sdc1   8:33   1  1004M  0 part /media/sdc1-usb-Kingston_DataTra
└─sdc2   8:34   1   6,4G  0 part /media/live-r

 info -q all -n $i|grep BUS|cut -d '=' -f 2; done
 
BELLO!!! Questo me lo segno tra i miei preferiti!
Sei riuscito a fare un esempio con:
1) Definizione e utilizzo variabile in una stessa linea.
2) assegnamento del risultato di una serie di comandi ad una variabile
3) utilizzo di grep,sed,awk,cut
4) regexp
5) utilizzo udevadm che non è un comando fra i più noti
6) ciclo for
 
 
 
 

 4) regexp
 
Eh? A parte dei backslash di protezione (inutili), non ci sono regexp
 
Enrico

 riscriverla, avrei fatto cosi`:
 
Bei giochini!
Con una piccola modifica (se non ti dispiace), aggiungerei un paio di info
utili: il mount-point ed il modello del dispositivo.
 
 
Funzionano sia in uno script che incollando direttamente in un terminale.
 
 
 
# modo 1
 
DISKS=$(sudo fdisk -l | grep "Disk \/dev\/sd" | \
awk '{print $2}' | sed -e 's/://g'); for i in $DISKS; do echo -n -e "$i\t"; \
echo -n -e $(grep $i /etc/mtab | awk '{print $2}') ; echo -n -e "\t\t"; \
echo -e $(/sbin/udevadm info -q all -n $i | grep "ID_BUS\|ID_MODEL" | \
cut -d '=' -f 2) ; done ; echo
 
 
 
# modo 2
 
for i in $(sudo fdisk -l 2>/dev/null | grep "Disk \/dev\/sd" | \
awk '{print $2}' | sed -e 's/://g'); do echo -n -e "$i\t"; \
echo -n -e $(grep $i /etc/mtab | awk '{print $2}') ; echo -n -e "\t\t"; \
echo -e $(/sbin/udevadm info -q all -n $i | grep  "ID_BUS\|ID_MODEL" | \
cut -d '=' -f 2) ; done ;echo
 
 
 
 
-- 
+---------------------------------------------------------------------------+
|I puristi ritengono inopportuno utilizzare driver proprietari sutto Linux, |
|i masochisti amano utilizzare driver Windows sotto Linux... Twisted Evil   |
+-----#19--------------------Campagna contro le pubblicita` idiote.---------+

 per quanto non mi piaccia windows... A, B, C: erano molto piï¿œ semplici!
 
Dipende, in automatico o manualmente.
Il device "raw" oppure hai un mount point?
 
Un metodo banale:
 
ls /dev/sd*
<inserire chiavetta>
ls /dev/sd*
 
la differenza ti da il device (a meno di race
condition, ma non credo sia un caso normale).
 
Se usi "ls -l --sort=time /dev/sd*" puoi anche
vedere l'ultimo device in ordine di tempo.
 
Da script, allora come gia` suggerito "udev"
dovrebbe a fare al caso tuoi.
 
bye,
 
-- 
 
piergiorgio

 DISKS=$(sudo fdisk -l | grep "Disk \/dev\/sd" | \
 
Questo non lo vedo utile, tanto vale usare la variabile inline
 
Enrico

 Eh? A parte dei backslash di protezione (inutili), non ci sono regexp
 
Hai ragione.
 
l'argomento che hai usato per il sed 's/://g' io me lo sono studiato 
mentre cercavo di capire le regexp in perl (da qui il mio 
fraintendimento), ma in effetti non è una regexp, ma solo la sinassi per 
utilizzarla attraverso sed. La vera regexp dovrebbe essere quella che 
sta fra le barre, ma li ci sono solo i ":" da sostituire con NULLA
 
Ps. Personalmente mi sembrava più leggibile la prima versione rispetto 
alla nuova.
 

 l'argomento che hai usato per il sed 's/://g' io me lo sono studiato
 
Significa semplicemente [1]:
sostituisci il carattere "due punti"  con   nulla e ripeti la sostituzione per
tutte le ricorrenze (il   g   finale signifca appunto il "ripeti").
Che tradotto in parole povere, togli dalle scatole, in tutte le righe, tutti i
caratteri  "due punti"  .
 
 
[1] 
http://www.catonmat.net/blog/wp-content/uploads/2008/09/sed1line.txt
 
 
-- 
+---------------------------------------------------------------------------+
|  Le figlie di Maria, sono le prime a darla via.                           |
|  I figli di Gesu' lo voglion tutto su!                                    |
+-----#24--------------------Campagna contro le pubblicita` idiote.---------+

 sta fra le barre, ma li ci sono solo i ":"...
 
a rigore, anche se molto semplice, è una regexp pure quella :)
 
-- 
73 es 51 de i3hev, op. mario
 
Non è Radioamatore, se non gli fuma il saldatore!
- Campagna "Il Radioamatore non è uno che ascolta la radio"
 
it.hobby.radioamatori.moderato
http://digilander.libero.it/hamweb
 
http://digilander.libero.it/esperantovenezia