Можно ли открыть файл из терминала не по его имени, а по его (номеру) положению в папке? Или любой другой вариант?
Потому что имя слишком длинное.
command-line
files
directory
да, да
источник
источник
Tab
клавишу?Ответы:
Вы, вероятно, еще не обнаружили - Tabзавершение (см. Здесь ) еще.
При вводе имени файла в Терминале просто наберите первые несколько букв и нажмите « TabВолшебство»!
источник
*
, если вы не хотите использовать Tab-завершение по какой-то причине. Или даже*abc*
если имя файлаabc
где-то есть (попробуйте использовать подшаблон, уникальный для имени файла, который вы хотите). Или просто скопируйте / вставьте имя файла с помощью мыши.Просто для удовольствия, буквально отвечая на вопрос:
Как это работает на практике
Содержимое текущего каталога перечислено, пронумеровано. Выберите номер, и товар откроется:
Настроить
...легко:
Выйдите из системы, войдите в нее и начните использовать команду, просто набрав
в терминале
NB
Если вы хотите показать скрытые файлы, измените
в:
источник
~/bin
еще нет в вашей переменной PATH, вам придется добавить его (например, поставить строку, например,export PATH="$PATH:~/bin"
в.bashrc
или.profile
.)source ~/.profile
.~/bin
вообще ни во что не встроен. Ubuntu и Debian поставляются с кастомами~/.profile
, в которых есть строкиif [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" ; fi
. В Mac OS X и CentOS вы должны настроить это самостоятельно. Хорошим шансом является то, что если ИТ-отдел предоставит Ubuntu сотруднику, скорее всего,~/.profile
он не будет таким же, как Ubuntu по умолчанию, поэтому рекомендуется всегда остерегаться~/bin
нестандартного. Bash также можно игнорировать,~/.profile
если запустить оболочку с--no-profile
опциейВ Bash есть малоизвестная функция, которая позволяет вам делать это без вызова Python или любого другого стороннего инструмента и с помощью одной строки:
источник
open
как правило, не работает, хотя (если вы не на Mac OS);xdg-open
вероятно, добьется цели в большинстве систем GNU / Linux.В чистом bash, используя
select
утверждение:Установка PS3 это просто глаз. Если вы пропустите это, вы просто получите приглашение по умолчанию. Если вы пропустите оператор break, оператор select будет зацикливаться до тех пор, пока вы не нажмете CTRL-D или CTRL-C.
Конечно, вы также можете запустить его как одну строку:
источник
Вы можете установить и использовать
mc
Midnight Commander. Это текстовый пользовательский интерфейс с меню и т. Д., Вдохновленный старым Norton Commander, который был популярен, когда люди использовали MSDOS (до Windows).и запустить его в окне терминала или на текстовом экране,
источник
$ ls
Как насчет
ls | sed -n 3p
Печатает 3-е имя файла
Templates
Открой это-
xdg-open "$(ls | sed -n 3p)"
Обычно работает.
Поместите это в сценарий
Название сценария: открытый
Сохраните его в домашней папке. Бегать:
источник
ls
ls
(и что делать вместо этого)?В файловых системах Linux имена файлов имеют очень интересное свойство, называемое inode : каталог (или папка) - это список inode, и какие имена файлов указывают на эти inode. Итак, если вы знаете номер инода, вы можете попытаться найти файл с помощью
find
утилиты и выполнить с ним определенные операции. Это особенно полезно при работе с именами файлов в разных локалях, специальными символами или когда вы случайно создали каталог с именем~
.Например,
Для этого необходимо просмотреть текущий рабочий каталог (представленный
.
) и найти запись каталога, представляющую собой файл с номером индекса 1103743. Если файл найден,xdg-open
откроется файл с приложением по умолчанию иfind
будет завершен после этого. Причина для дополнительного-and
и-quit
заключается в том, чтобы предотвратитьxdg-open
повторное открытие файла, если существуют жесткие ссылки на файл (что эквивалентно открытию одного и того же файла дважды).источник
Сделайте несколько файлов:
Поместите файлы в переменную и откройте файл по индексу.
Замените
12
индекс, который вы пытаетесь открыть.источник
Это, вероятно, самый простой ответ, который прямо отвечает на вопрос. попробуйте следующее:
Допустим, мы хотим открыть (или отредактировать) второй файл, мы можем сделать следующее:
это выведет имя второго файла, который мы можем использовать в качестве ввода для команды, которую мы хотим выполнить, например:
выведет содержимое второго файла.
[ОБНОВЛЕНИЕ] это предполагает, что у вас нет пробелов в именах файлов,
спасибо @wjandrea за ваши наблюдения.
источник
ls
. Также кавычки не рекомендуются. Используйте$()
вместо этого.