Очень легко решить (после нескольких часов траты времени, пытаясь изменить /kernel/drv/sgen.conf и некоторые другие, как предлагается на справочных страницах драйвера):
Просто настройте систему на использование драйвера sgen для ленточных устройств SCSI -чейнджера LUN, введя следующую команду:
user@server1:~# update_drv -av -i '"scsiclass,08"' sgen
exit status = 0
devfsadm[1384]: verbose: symlink /dev/scsi/changer/c3t500E09E0001BFE72d1 ->../../../devices/pci@0,0/pci8086,e04@2/pci1000,3030@0/iport@8/medium-changer@w500e09e0001bfe72,1:changer
и вуаля
user@server1:~# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
...
c3::rmt/1 tape connected configured unknown
c3::scsi/changer/c3t5000E1116 med-changer connected configured unknown
...
Доказательство того, что устройство обрабатывается драйвером sgen:
user@server1:~# cat /etc/path_to_inst | grep sgen
"/pci@0,0/pci8086,e04@2/pci1000,3030@0/iport@8/medium-changer@w5000e11164a8d002,1" 1 "sgen"
Теперь mtx готов к работе с роботом:
user@server1:~# mtx -f /dev/scsi/changer/c3t5000E11164A8D002d1 inquiry
Product Type: Medium Changer
Vendor ID: 'BDT '
Product ID: 'FlexStor II '
Revision: '5.10'
Attached Changer API: No
Если ссылки в дереве /dev перепутались, вы можете использовать devfsadm для очистки:
user@server1:~# devfsadm -C -v
BTW :Накопитель на магнитной ленте, вероятно, нуждается в драйвере SCSI st , который автоматически использовался во время моих упражнений. Но вам также может понадобиться
update_drv -av -i '"scsiclass,01"' st
См. также команды add _drv и rem _drv .
Дано
$ ls
989875.txt myname.csv 'some long.msg' XYZABC.csv XYZABC.txt
Тогда
$ find. ! \( -name 'XYZABC.*' -o -name '*.msg' \)
.
./myname.csv
./989875.txt
Так например
$ find. -type f ! \( -name 'XYZABC.*' -o -name '*.msg' \) -printf '1' | wc -c
2
Вы можете перечислить файлы с помощью ls -1
и выполнить grep -v
, чтобы исключить файлы, которые не соответствуют условию. Поскольку вам просто нужен счет, вы можете передать его через wc -l
и получить счет. Например
ls -1 | grep -v XYZABC | wc -l
Единственная проблема заключается в том, что он также включает первую строку, которая принадлежит total
. Вы можете либо вычесть 1 из счетчика, либо отправить вывод через tail +2
перед wc
.
Вы можете обрабатывать несколько шаблонов, используя egrep
как
ls -1 | egrep -v "(XYZABC|.msg)" | tail +2 | wc -l