Почему нельзя unrar развернуть это выражение?

Это - порядок вещей, которые я попробовал бы при отладке облупленного беспроводного устройства.

  1. Перезагрузка решает вопрос?
  2. Попытайтесь разгрузить драйверы ядра, связанные с беспроводным устройством. Что-то к эффекту следующего:

    $ lsmod | grep iw
    iwlagn                209751  0 
    iwlcore               195714  1 iwlagn
    mac80211              229095  2 iwlagn,iwlcore
    cfg80211              134981  3 iwlagn,iwlcore,mac80211
    
    $ sudo rmmod iwlagn
    $ sudo rmmod iwlcore
    
    $ modprobe iwlagn
    
  3. Исследуйте любые сообщения, связанные с беспроводным устройством, сообщаемым через dmesg. Например:

    $ dmesg
    ...
    ...
    [207981.191849] mac80211: Unknown parameter `ieee80211_disable_40mhz_24ghz:Disable'
    [207988.895378] mac80211: `Disable' invalid for parameter `ieee80211_disable_40mhz_24ghz'
    [208280.841725] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d
    [208280.841727] iwlagn: Copyright(c) 2003-2010 Intel Corporation
    [208280.841826] iwlagn 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
    [208280.841857] iwlagn 0000:03:00.0: setting latency timer to 64
    [208280.842798] iwlagn 0000:03:00.0: Detected Intel(R) Centrino(R) Wireless-N 1000 BGN, REV=0x6C
    [208280.863413] iwlagn 0000:03:00.0: Tunable channels: 13 802.11bg, 0 802.11a channels
    [208280.863582] iwlagn 0000:03:00.0: irq 48 for MSI/MSI-X
    [208280.898025] iwlagn 0000:03:00.0: loaded firmware version 128.50.3.1 build 13488
    [208280.898725] phy1: Selected rate control algorithm 'iwl-agn-rs'
    [208281.154937] ADDRCONF(NETDEV_UP): wlan0: link is not ready
    [208282.101156] wlan0: authenticate with 30:46:9a:47:4c:d4 (try 1)
    [208282.104128] wlan0: authenticated
    [208282.104164] wlan0: associate with 30:46:9a:47:4c:d4 (try 1)
    [208282.106911] wlan0: RX AssocResp from 30:46:9a:47:4c:d4 (capab=0x411 status=0 aid=3)
    [208282.106914] wlan0: associated
    [208282.111520] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
    [208292.608637] wlan0: no IPv6 routers present
    
3
14.05.2015, 01:39
3 ответа

Это также не работает в 5.2.7 (более новая версия). Я предлагаю попробовать unrar x file \ *. Rar , обратите внимание на точку перед rar . Это идет немного по другому пути кода, по крайней мере, в 5.2.7, и это работает в 5.2.7.

Почему? Что ж, после нескольких минут просмотра исходников unrar (посмотрите на match.cpp , если вы хотите попробовать!), я могу спокойно сказать: «Потому что Александр Рошаль действительно, действительно, действительно должен был использовать вместо него glob (3) ». Почему он этого не сделал? Вероятно, потому что он недоступен в Windows, откуда AFAIK rar происходит.

В Windows расширения являются особенными, и кажется, что код unrar рассматривает их как некую часть имени файла, а не на самом деле - простое конечное завершающее * будет соответствовать один, но не * посередине. Не уверен, что это ожидаемое поведение в Windows, но точно не в Unix.


Обходной путь

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

for f in file*rar; do
    unrar x "$f"
done

Позвольте оболочке расширять глобус и отдавать unrar по одному файлу за раз. Надеюсь, ни один из ваших файлов не содержит * в именах ...


Сначала я сказал, что это работает в 5.2.7, но это было ошибкой: я потерял обратную косую черту во время тестирования ...

3
27.01.2020, 21:12

Попробуйте:

for i in ./*.mcp; do
    if [ -f "$i" ]; then
        tail -1 "$i"
    fi
done | awk '{ print NR, $8, $9, $10 }'
-121--217184-

Я бы посмотрел на несколько вещей

  - is oddjobd running?
  - any messages related to this or PAM in authlog, messages
  - is SElinux enabled or enforced? check audit log for any AVC denial messages

Взглянув еще раз на ваш sssd.conf, вы можете переместить override _ homedir в раздел DOMAIN , в противном случае sssd, похоже, получит информацию о домашнем каталоге из ldap.

-121--100578-

При вводе unrar x file\* rar программа unrar получает литерал последовательности файл * rar . Вероятно, проще просто ввести unrar x file * rar , что приведет к расширению образца оболочки ( unrar получит список файлов, соответствующих образцу).

Теперь, каким образом файл runar x\* rar не работает, в то время как, например, файл runar x файл\* .rar ? Я предполагаю, что unrar включает свой собственный код для расширения образца, для запуска в системах, где оболочка не выполняет он, и правила не такие, как в Unix. Если я помню правильно, это соответствовало бы правилам на MS-DOS, где * rar будет не соответствует файлам с именами, оканчивающимися на .rar .

1
27.01.2020, 21:12
unrar x '*.rar' 

это работает для меня, у меня была такая же проблема.

если я опущу 'unrar попытается добавить все файлы в одну командную строку

например: у меня 1.rar 2.rar 3.rar если я сделаю

unrar x * .rar

передача команды linux будет

unrar x 1.rar  2.rar 3.rar 

и приведет к ошибке , но если я использую 'как это

unrar x '*.rar' 

, переданная команда будет

unrar x 1.rar
unrar x 2.rar
.......
3
27.01.2020, 21:12

Теги

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