Как вы попадаете в первую доступную папку, не вводя название?

Недавно я был в затруднительном положении, когда находился в папке, и я хотел cd перейти в папку подкаталога. Внутри этой папки была только одна папка, и это было действительно длинное имя.

Home (I am here)
 |
 |
  --> /reallylongnamefolder

Есть ли способ войти в эту папку вместо ввода:

 cd reallylongnamefolder
30
задан 28 April 2014 в 20:52

7 ответов

Я был бы совет любой для ввода первых нескольких букв и нажимающей вкладки . Bash имеет функцию автоматического заполнения, которая действительно полезна. Если это будет только каталог в в текущем пути, просто нажимающем вкладку , то заполнит целый каталог.

Ввод в cd и нажатие вкладки дважды отобразит все опции в текущем каталоге.

вкладка обычно действительно полезна в ударе, как Вы имеете доступный почти все исполняемые файлы при одних или двух нажатиях клавиш.

cd *, как предложено выше работ, только если каталог является первым в списке и не скрытым. Если будет файл в алфавитном порядке перед Вашим каталогом, то это cd не изменит Ваш каталог вообще.

0
ответ дан 28 April 2014 в 20:52

Я думаю, что на самом деле понял это на самом деле

cd * 
cd */

Но я не протестировал его, если существует несколько файлов и одна папка!


Как @Rinzwind упомянутый в комментариях!

Скажем, у Вас есть три длинных папки:

 /thisislongfolder1
 /thisislongfolder2
 /thisislongfolder3

Если Вы введете первую букву файла, то пораженная вкладка это автоматически заполнит имя файла! СУМАСШЕДШИЙ МАТЕРИАЛ!

Таким образом в примере выше, можно ввести: t вкладка и это автоматически заполнит столько, сколько это может: cd thisislongfolder (затем введите число сами).

Или можно сделать cd t*1 взял бы Вас в thisislongfolder1

Спасибо Rinzwind!

16
ответ дан 28 April 2014 в 20:52
cd $(ls -d */|head -n 1)

ls -d */ списки каталоги, head -n 1 дает первый в этом списке.

0
ответ дан 28 April 2014 в 20:52

У меня есть хорошая установка для этого, она позволяет мне не только к CD к ~/somereallylongfoldername, но также и CD к там, даже когда я нахожусь в / папка

первая вещь, я использую, zsh с oh-my-zsh, который это также позволит, Вы к CD, не имея необходимость волноваться о случае или даже не вводя cd

  1. устанавливаете мерзавца, и zsh
sudo apt-get install zsh git
  1. устанавливают, О, Мой-L http://install.ohmyz.sh завихрения ZSH

| Изменение sh

  1. , оболочка по умолчанию к ZSH
chsh -s /bin/zsh

открывает и редактирует Ваш .zshrc, который расположен в Вашей домашней папке не, она скрыта

, нано ~/.zshrc

тогда добавляет следующую строку к нижней части файла export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/

, Если Вам нравится моя тема, можно также измениться, строка #ZSH_THEME="robbyrussell" к ZSH_THEME="pygmalion"

Сохраняют и закрываются, файл тогда перезапускают т.е. закрывают и вновь открыли оболочку или просто открывают новую вкладку и пробуют его

не, можно использовать клавишу Tab для завершения имен, и в ZSH Вы не должны даже иметь права случая, можно ввести docu и нажать вкладку, и она превратит его в ~ / Документы

enter image description here

0
ответ дан 28 April 2014 в 20:52

Можно изменить каталог inode числом.
первый мы находим inode с ls -il.
тогда

cd $(find -inum directory_inode_number)
0
ответ дан 28 April 2014 в 20:52

Если необходимо сделать это в сценарии или поддерживать каталоги с undecodable именами:

cd $(python -c  

Это работает, если существуют файлы в каталоге, независимо от их порядка сортировки относительно каталогов.
Это работает на скрытые каталоги когда cd */ сбои.
Это работает, если имя не является представимым в текущей локали когда ls только печать ?? вместо имени.

import os\nfor entry in os.listdir(b"."):\n if os.path.isdir(entry):\n os.write(1, entry);break\nelse: os.write(1, b".")')

Это работает, если существуют файлы в каталоге, независимо от их порядка сортировки относительно каталогов.
Это работает на скрытые каталоги когда cd */ сбои.
Это работает, если имя не является представимым в текущей локали когда ls только печать ?? вместо имени.

0
ответ дан 28 April 2014 в 20:52

Расширение на ответе туза:

cd $(ls -d -1 */ |sed -n '1p')

для открытия 1-й папки в каталоге. '1p' может быть изменен на '2p' для второго каталога.

ls -d -1 -la */

для списка только каталогов из родительского каталога.

0
ответ дан 18 April 2019 в 23:19

Другие вопросы по тегам:

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