Изменение каталогов в оболочке Bash с большими именами файлов
Я должен перемещаться по ряду каталогов, содержащих установщики программного обеспечения. Я написал небольшую функцию bash, которая доставляет меня в основную папку, содержащую все сборки, но имена файлов подкаталогов смехотворно длинные.
Основная папка называется "release" и содержит каталоги с такими именами, как "Build 10 - 0.0.3580 - ecb871131857710a". Я прочитал книгу Уильяма Шотта-младшего "Командная строка Linux: полное введение", и она была очень хорошей и тщательной, но на самом деле она не дала мне никакого понимания решения этой проблемы, и мои коллеги, кажется, не знают более простого способа либо.
Кто-нибудь может дать мне какие-либо предложения или общие методы, которые я мог бы исследовать, чтобы помочь решить эту проблему? Я не ищу сценарий или кого-то, кто дал бы мне полный ответ, но небольшой толчок в правильном направлении был бы очень признателен.
2 ответа
Я просвещал парня в школе в прошлом году, познакомив его с превосходством завершения bash, пока он неохотно изучал превосходство версии Mercurial для командной строки по сравнению с TortoiseHG, по моему настоянию. Разговор:
Я: Тип CD ~
Он: да?
Я: Теперь вкладка
Ему: а?
Я: слеш и таб снова.
Он: О дерьмо!
Я: Войти. Довольно изящно, да? Теперь введите три первые буквы папки, в которой вы сохранили файлы.
Он: Хорошо?
Я: вкладка
Он: Ух ты! это действительно полезно!
Я: полномочия командной строки ...
Его: cd Sch [tab] [enter] cd Proj [tab] [enter] cd s [tab] [tab] [tab]
Он: это не работает
Я: Это чувствительно к регистру. Маленькие буквы не такие, как большие. Тип Sourc [вкладка]
Его: Ох. [Закладка] [Ввод] [TAB] [войти]
Я: Нет, остановите это, вы можете завершить все пути, а не только отдельные папки.
Он: О, дерьмо! Это так круто!
Я: Далее я покажу вам, как искать файлы с помощью locate.
Я, вероятно, изменил всю его жизнь и перевернул его мировоззрение!
Linux обычно имеет следующие ограничения:
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
Если ваши "смехотворно длинные" пути короче этого, у вас не должно быть проблем.
Я заметил, что ваши имена содержат пробелы, поэтому убедитесь, что вы всегда заключаете в кавычки свои переменные.