В хороших старых временах звуковых карт ISA это не было возможно создание узлов устройств в / dev /
динамически, поэтому все устройства должны быть предварительно выделены. Это привело к ограничению в 8 звуковых карт, и драйверы были написаны с учетом этого ограничения.
Позже, когда были представлены devfs и USB, это ограничение было снято.Однако самый простой способ сделать это - внести минимальное количество изменений, то есть просто изменить верхний предел.
Переписать код, чтобы разрешить бесконечное количество карт, потребовало бы больших усилий без каких-либо конкретных преимуществ. (Можно увеличить текущее значение по умолчанию, равное 32, с помощью параметра конфигурации ядра, но люди, которые попробуйте, как правило, выясните, что у них недостаточно пропускной способности USB для такого количества устройств.)
Вы можете продолжить идею -d
и просто переименовать любой извлеченный файл в желаемое «имя zip минус zip плюс txt»:
mkdir tmp
for f in *.zip; do unzip "$f" -d tmp && mv tmp/* "${f%.zip}.txt"; done
rmdir tmp
Кроме того, вы можете направить вывод из распаковки в файл с соответствующим -именем:
for f in *.zip; do unzip -p "$f" > "${f%.zip}.txt"; done
Команда unzip
имеет свою собственную опцию unzip -Z1 zipfile.zip
для отображения фактического имени сжатого файла в заархивированном файле, который принимает zipinfo's
опцию -1
как zipinfo -1 zipfile.zip
. поэтому вы можете просто сделать, как показано ниже, и нет необходимости создавать временный каталог, и mv
будет выполнено в текущем каталоге.
for z in *.zip; do
unzip "$z";
mv "$(unzip -Z1 $z)" "${z%%.*}.txt";
done