Недавно я был в затруднительном положении, когда находился в папке, и я хотел cd
перейти в папку подкаталога. Внутри этой папки была только одна папка, и это было действительно длинное имя.
Home (I am here)
|
|
--> /reallylongnamefolder
Есть ли способ войти в эту папку вместо ввода:
cd reallylongnamefolder
Я был бы совет любой для ввода первых нескольких букв и нажимающей вкладки . Bash имеет функцию автоматического заполнения, которая действительно полезна. Если это будет только каталог в в текущем пути, просто нажимающем вкладку , то заполнит целый каталог.
Ввод в cd
и нажатие вкладки дважды отобразит все опции в текущем каталоге.
вкладка обычно действительно полезна в ударе, как Вы имеете доступный почти все исполняемые файлы при одних или двух нажатиях клавиш.
cd *
, как предложено выше работ, только если каталог является первым в списке и не скрытым. Если будет файл в алфавитном порядке перед Вашим каталогом, то это cd
не изменит Ваш каталог вообще.
Я думаю, что на самом деле понял это на самом деле
cd *
cd */
Но я не протестировал его, если существует несколько файлов и одна папка!
Как @Rinzwind упомянутый в комментариях!
Скажем, у Вас есть три длинных папки:
/thisislongfolder1
/thisislongfolder2
/thisislongfolder3
Если Вы введете первую букву файла, то пораженная вкладка это автоматически заполнит имя файла! СУМАСШЕДШИЙ МАТЕРИАЛ!
Таким образом в примере выше, можно ввести: t вкладка и это автоматически заполнит столько, сколько это может: cd thisislongfolder
(затем введите число сами).
Или можно сделать cd t*1
взял бы Вас в thisislongfolder1
Спасибо Rinzwind!
cd $(ls -d */|head -n 1)
ls -d */
списки каталоги, head -n 1
дает первый в этом списке.
У меня есть хорошая установка для этого, она позволяет мне не только к CD к ~/somereallylongfoldername, но также и CD к там, даже когда я нахожусь в / папка
первая вещь, я использую, zsh с oh-my-zsh, который это также позволит, Вы к CD, не имея необходимость волноваться о случае или даже не вводя cd
sudo apt-get install zsh git
| Изменение sh
chsh -s /bin/zsh
открывает и редактирует Ваш .zshrc, который расположен в Вашей домашней папке не, она скрыта
, нано ~/.zshrc
тогда добавляет следующую строку к нижней части файла export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/
, Если Вам нравится моя тема, можно также измениться, строка #ZSH_THEME="robbyrussell"
к ZSH_THEME="pygmalion"
Сохраняют и закрываются, файл тогда перезапускают т.е. закрывают и вновь открыли оболочку или просто открывают новую вкладку и пробуют его
не, можно использовать клавишу Tab для завершения имен, и в ZSH Вы не должны даже иметь права случая, можно ввести docu и нажать вкладку, и она превратит его в ~ / Документы
Можно изменить каталог inode числом.
первый мы находим inode с ls -il
.
тогда
cd $(find -inum directory_inode_number)
Если необходимо сделать это в сценарии или поддерживать каталоги с 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
только печать ??
вместо имени.
Расширение на ответе туза:
cd $(ls -d -1 */ |sed -n '1p')
для открытия 1-й папки в каталоге. '1p' может быть изменен на '2p' для второго каталога.
ls -d -1 -la */
для списка только каталогов из родительского каталога.