показать количество файлов, не соответствующих определенному шаблону имени файла

Очень легко решить (после нескольких часов траты времени, пытаясь изменить /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 .

0
12.07.2019, 00:56
2 ответа

Дано

$ 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
0
28.01.2020, 03:27

Вы можете перечислить файлы с помощью 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
0
28.01.2020, 03:27

Теги

Похожие вопросы