Конечно, можно нормализовать путь с возможным несколько / (наклонные черты) в нем путем передачи его через tr -s
NORMALIZED=$(echo "$UNHYGIENIC" | tr -s / /)
... и затем используйте $NORMALIZED
Однако это должно быть необходимо. Что касается того, поскольку я знаю любого правильно, что ядро UNIX должно проигнорировать параллельные разделители пути---или концептуально обработка их как..././
...
Хотя “лучший ответ” был дан, этот сайт состояния иначе:
На самом деле это обозначает ‘Копию, и Преобразуйте’, и был переименован к
dd
только потому, чтоcc
был зарезервирован для компилятора C! Это - подлинная информация, которую я получил из страниц справочника нашего Unix-V7 на нашем университете PDP 11.
Исходная почта в comp.unix.misc
(Usenet): список акронима Unix
He's not sure if it was ever actually called cc in UNIX, but he is _certain_ that the name dd comes from the jcl dd command (so does the wreched syntax).
– Justin Ethier
03.02.2011, 17:41
GNU Compiler Collection
, но зная GNU и их странную одержимость акронимами, это, вероятно, обозначает обоих..
– Braden Best
25.12.2015, 00:17
dd
использование, в этом случае этот ответ мог бы быть более соответствующим. Я не на самом деле уверен, который спрашивает OP. спасибо
– jw013
09.10.2012, 19:58
Кто-то задавался вопросом, действительно ли команда dd UNIX (и Linux) имеет какое-либо отношение к команде dd IBM JCL. Я бы сказал, что это ДЕЙСТВИТЕЛЬНО и что это имело прямое отношение к выбору названия, и вот почему.
«Давным-давно», в восьмидесятые и раньше, у AT&T были системы оперативной поддержки, в частности биллинговые системы, которые работали на оборудовании, отличном от их собственных исследовательских систем. В частности, такие вещи, как отчеты о выставлении счетов на большие расстояния и другие артефакты, которые необходимо передавать между компьютерными системами мэйнфреймов и другими системами, должны были иметь механизм.
В UNIX передача файлов или любых «объектов» может выполняться по битам или байтам за раз, независимо от содержимого или чего-либо еще. Команда dd обеспечивала передачу этих битов и байтов, а также выполнение таких вещей, как преобразование кодового набора между EBCDIC и ASCII, копирование резервных копий на магнитную ленту между различными типами носителей и т. Д.
Сегодня мы можем делать что-то с помощью этой довольно древней команды и выполнять такие задачи, как создание загрузочного носителя на CD, DVD, USB-накопителях малого форм-фактора, и неизвестно, что дальше, потому что инструмент может просто передавать информацию независимо от содержимого. . В этом отношении команда dd является одной из самых полезных команд в арсенале UNIX и Linux.
Определенно dd — это «копирование и преобразование», так как у нас есть «флаг командной строки» conv (флаги преобразования )с noerror, notrunc, sync и т. д.
«Конв» должно означать «преобразовать»!
dd if=<flag> of=<flag> conv=<flags> bs=<flag>
Рассказанная история имеет смысл, имя «cc» было взято (компилятором c ), поэтому «копирование и преобразование» было названо dd, а позже люди запомнили как «диск/дамп данных».
Это не POSIX, это JCL, и это объясняет синтаксис и использование «флагов командной строки» вместо параметров/аргументов.
It is jokingly said to stand for "disk destroyer", "data destroyer", or "delete data"
- перекрестные ссылки это с файлом Жаргона нажимает переключатель, я полагаю, что это - ответ, который мы ищем! – invert 02.02.2011, 22:49