Xargs Mac OS объединяют исходный аргумент с новыми аргументами

Добавить в /etc/modulesмодуль xfs, чтобы при следующей загрузке он грузился как в:

xfs

Кроме того, чтобы загрузить его во время выполнения, выполните:

sudo modprobe xfs

После этого mount -aзаработал и успешно смонтировал раздел /srv.

Для двойной -проверки правильности установки:

$ mount -t xfs
/dev/sdb1 on /srv type xfs (rw,relatime,attr2,inode64,noquota)

Раздел также монтировался автоматически после перезагрузки, и можно проверить, был ли загружен модуль xfs:

$lsmod | grep xfs
xfs                  1208320  1
libcrc32c              16384  1 xfs
1
27.11.2019, 01:19
2 ответа

Я использовал gfind (brew install findutils )для достижения того же, что и выше:

$ gfind /tmp/temp -iname "*.mp4" -printf '\n' -exec ls {} \; -exec mdls -name kMDItemAudioSampleRate -name kMDItemBitsPerSample -raw {} \; | xargs -0 -n 2 

/tmp/temp/a.mp4
(null) (null)
/tmp/temp/b.mp4
(null)
(null)
/tmp/temp/c.mp4
(null) (null)
/tmp/temp/d.mp4
(null)
(null)

0
27.01.2020, 23:57

Вызов шорта в -строчном скрипте изxargs:

mdfind -0 -onlyin ~/Music kind:audio | xargs -0 sh -c '
for pathname do
    printf "%s %s %s\n" \
        "$( mdls -name kMDItemAudioSampleRate -raw "$pathname" )" \
        "$( mdls -name kMDItemBitsPerSample   -raw "$pathname" )" \
        "$pathname"
done' sh

Цикл получает пакеты найденных путей от mdfind. Для каждого пути mdlsиспользуется для извлечения двух интересующих вас атрибутов, и их значения печатаются вместе с самим путем, используя printf.

Или попробуйте использовать атрибут kMDItemPath, который позволит вам вызывать mdlsтолько один раз для каждого имени пути:

mdfind -0 -onlyin ~/Music kind:audio | xargs -0 sh -c '
for pathname do
    mdls -name kMDItemAudioSampleRate \
         -name kMDItemBitsPerSample \
         -name kMDItemPath \
         -raw "$pathname" | tr "\0" " "
    echo
done' sh
0
27.01.2020, 23:57

Теги

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