Вашей командой является немного Rube Goldberg-esque. Возьмите список файлов *.mkv
. Перечислите те файлы (потенциально заменяющий некоторые непечатаемые символы приблизительным представлением). Проанализируйте список (с некоторыми правилами парсинга, которые не вполне соответствуют способу, которым список сгенерирован). Передайте проанализированные элементы человека du
команда (который был бы способен к взятию нескольких аргументов).
ls
команда не разворачивает подстановочные знаки, это - оболочка, которая делает. Не анализируйте вывод ls
, это никогда не практически необходимо и часто повреждает что-то.
Формат ввода xargs
команда не соответствует тому, что производит любая другая команда. Да, это причудливо. С -I
, xargs
игнорирует добавление отступа, которое является, почему имена файлов с начальными пробелами искажаются. Не использовать xargs
кроме с -0
опция или когда Вы знаете свой вход, не содержит символы, которые перепутали бы его.
Просто запишите
du -h *.mkv | awk '{print $1}'
Необходимо будет, вероятно, добавить правило UDEV обнаружить это присутствие устройств. После того как устройство обнаруживается, UDEV может создать соответствие /dev/sdb1
соглашаться с ним.
Эти документы от OpenSUSE должны запустить Вас в создании этого правила.
Относительно Вашего вопроса:
"..., но разве я не должен мочь найти родительский узел в/sys для этого? И я ничего не могу найти..."
Я ожидал бы это, если ядро успешно обнаружило /dev/sdb1
, который это имеет, так как Вы вкладываете те сообщения Ваш dmesg
журнал, затем у Вас были бы соответствующие записи под /sys
.
Я занялся бы расследованиями /sys
более тщательно, там вероятно дескриптор устройства, скрывающийся там, который соответствует /dev/sdb1
. Можно идти вокруг дерева с помощью этой команды: udevadm info -a -p /sys/class/...
необходимо будет прибавить соответствующее устройство вместо точек (...
).
$ udevadm info -a -p /sys/class/ata_device/dev1.0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/link1/dev1.0/ata_device/dev1.0':
KERNEL=="dev1.0"
SUBSYSTEM=="ata_device"
DRIVER==""
ATTR{gscr}==""
ATTR{class}=="ata"
ATTR{ering}=="[4294667.658000000]Unknown"
ATTR{spdn_cnt}=="0"
ATTR{pio_mode}=="XFER_UDMA_7, XFER_UDMA_6, XFER_UDMA_5, XFER_UDMA_4, XFER_MW_DMA_4, XFER_PIO_6, XFER_PIO_5, XFER_PIO_4, XFER_PIO_3, XFER_PIO_2, XFER_PIO_1, XFER_PIO_0"
ATTR{dma_mode}=="XFER_UDMA_7, XFER_UDMA_6, XFER_UDMA_5, XFER_UDMA_4, XFER_UDMA_3, XFER_UDMA_2, XFER_UDMA_1, XFER_UDMA_0, XFER_MW_DMA_4, XFER_MW_DMA_3, XFER_MW_DMA_2, XFER_SW_DMA_2, XFER_PIO_6, XFER_PIO_5, XFER_PIO_4, XFER_PIO_3, XFER_PIO_2"
ATTR{xfer_mode}=="XFER_UDMA_7, XFER_UDMA_6, XFER_UDMA_5, XFER_UDMA_4, XFER_UDMA_3, XFER_UDMA_2, XFER_UDMA_1, XFER_UDMA_0, XFER_MW_DMA_4, XFER_MW_DMA_3, XFER_MW_DMA_2, XFER_SW_DMA_2, XFER_PIO_6, XFER_PIO_5, XFER_PIO_4, XFER_PIO_3, XFER_PIO_2"
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/link1/dev1.0':
KERNELS=="dev1.0"
SUBSYSTEMS==""
DRIVERS==""
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/link1':
KERNELS=="link1"
SUBSYSTEMS==""
DRIVERS==""
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1':
KERNELS=="ata1"
SUBSYSTEMS==""
DRIVERS==""
looking at parent device '/devices/pci0000:00/0000:00:1f.2':
KERNELS=="0000:00:1f.2"
SUBSYSTEMS=="pci"
DRIVERS=="ahci"
ATTRS{irq}=="40"
ATTRS{subsystem_vendor}=="0x17aa"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x010601"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{dma_mask_bits}=="64"
ATTRS{local_cpus}=="00000000,00000000,00000000,0000000f"
ATTRS{device}=="0x3b2f"
ATTRS{msi_bus}==""
ATTRS{local_cpulist}=="0-3"
ATTRS{vendor}=="0x8086"
ATTRS{subsystem_device}=="0x2168"
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="1"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
/dev/sdb1
затем у Вас были бы соответствующие записи под/sys
. Я занялся бы расследованиями/sys
более тщательно, там вероятно дескриптор устройства, скрывающийся там, который соответствует/dev/sdb1
. Можно идти вокруг дерева с помощью этой команды: информация о udevadm-a-p/sys/class/...' необходимо будет прибавить соответствующее устройство вместо точек (...
). – slm♦ 31.12.2013, 23:41