여러 하드 드라이브에 걸쳐 있는 디렉토리를 쉽게 탐색할 수 있는 방법을 찾고 있으며 터미널에 바로 가기와 동일한 기능을 설정하고 싶습니다.
Windows에서는 mklink
해당 디렉터리로 이동하기 위한 심볼릭 링크를 생성하거나 현재 파일 경로 끝에 위치를 추가하는 연결을 생성하여 이 작업을 수행합니다.
이는 실제로 탐색에 관한 것이므로 링크 등이 될 필요는 없습니다. 아마도 cd $myDir
(바람직하게는) 일부 환경 변수를 설정할 수 있을 것입니다.
이런 일이 가능합니까, 아니면 카탈로그를 더 잘 배워야 합니까?
답변1
파일 시스템 레이아웃에 익숙해지는 것은 유능한 사용자가 되기 위한 일부입니다. 이 목표를 위해 소비하는 시간은 낭비되는 시간이 아닙니다. 그러나 그렇게 하면 파일 시스템을 더 쉽게 이동할 수 있습니다. Linux/UNIX에서는 각 "드라이브"(구성에 따라 물리적 또는 논리적)가 표시되는 Windows와 달리 스토리지를 구성하는 장치 수에 관계없이 파일 시스템이 단일 트리로 나타납니다. 기본 구성은 독립된 트리로 구성됩니다.
이 문제를 해결하는 방법에는 여러 가지가 있습니다. 물론 각각 다른 디렉토리를 가리키는 여러 개의 쉘 변수를 설정할 수 있습니다. 명령을 실행하면 cd $SomeDir
셸이 변수를 확장 $SomeDir
하고 명령줄에서 해당 변수를 대체하여 최종 실행 시 cd
변수에 저장된 디렉터리 이름을 받게 됩니다. 이것은 아마도 가장 간단한 방법일 것입니다. 쉘 변수를 절대 경로로 채우면 파일 시스템의 어느 곳에서나 작동할 것입니다.
대상 디렉토리에 대한 기호 링크를 사용할 수도 있습니다(대부분의 UNIX는 디렉토리에 대한 하드 링크를 지원하지 않습니다). 그러나 이것이 작동하려면 커널이 심볼릭 링크를 확인할 수 있도록 경로 매개변수에 충분한 정보를 제공해야 합니다. 즉, 심볼릭 링크에 대한 절대 경로 또는 커널이 링크를 따라갈 수 있도록 링크를 찾을 수 있도록 충분한 상대 경로를 제공해야 합니다.
쉘에 따라 사용 가능하거나 사용 불가능할 수 있는 또 다른 방법은 쉘의 cdpath
기능을 사용하는 것입니다. 이는 bash
, zsh
및 tcsh
기타 의심할 여지 없이 지원됩니다. 이 기술을 사용하면 CDPATH
를 실행할 때 콜론으로 구분된 디렉토리 이름 목록으로 환경 변수를 설정할 수 있습니다 cd
. 디렉토리 중 하나 $CDPATH
에 전달된 하위 디렉토리와 이름이 일치하는 하위 디렉토리가 포함되어 포함되어 있고 시스템에 디렉토리가 있는 경우 명령을 실행하면 내용을 찾고 호출 하위 디렉토리를 찾고 존재 하는 경우 현재 작업 디렉토리를 해당 디렉토리로 변경합니다 . 쉘은 지정된 순서대로 디렉토리를 검색 하므로 인수로 전달한 하위 디렉토리가 포함된 디렉토리가 여러 개 있는 경우 ,cd
CDPATH
/usr/local
/usr/local/www
cd www
$CDPATH
/usr/local
www
/usr/local/www
$CDPATH
$CDPATH
cd
첫 번째 게임에서 승리하세요.. 이로 인해 나는 너무 자주 문제에 부딪히게 되어 더 이상 우리가 아닙니다 cdpath
.
답변2
다음과 같은 별칭을 설정할 수 있습니다.
$ alias abc="cd /home/user/Desktop/Folder"
이러한 내용을 장기간 저장하려면 .bashrc 파일에 추가하세요.
탐색만 찾고 있다면 이것이 작동할 것입니다. 그러나 스크립트를 작성하려는 경우 위의 "abc"는 아무 소용이 없습니다.
나는 개인적으로 디렉토리 구조의 [관련 부분]을 배우고 기억하는 것이 장기적으로 쉬울 것이라고 생각합니다. 별칭이 너무 많으면 기억할 것이 더 많아지고 적시에 사용해야 하는 여러 컴퓨터에서는 작동하지 않습니다.
답변3
제가 추천하고 싶은 것은지유틸리티 -https://github.com/rupa/z (이것은 다른 이름의 영향을 받습니다.제이).
무엇지이것이 하는 일은 쉘의 cd
기능을 재정의하여 방문하는 모든 디렉터리를 기록하는 부작용을 추가하는 것뿐입니다. 이러한 디렉터리는 ~/.z
"빈도"에 따라 내림차순으로 파일에 저장되므로, 최근에 더 자주 액세스한 경우 해당 디렉터리가 더 높게 표시됩니다.
그런 다음 cd
시간이 지남에 따라 이 색인을 구축한 후 새 명령을 사용하여 가장 높은 위치에 나타나는 하위 문자열이 포함된 디렉터리 z $DIR
로 이동할 수 있습니다 .$DIR
~/.z
답변4
가지다 $CDPATH
:
mkdir -p ./1/2/3/4/dir ./3/2/1/dir ./12/dir
CDPATH=":$HOME/1/2/3/4:$HOME/3/2/1:$HOME/12:"
cd dir
자주 방문하는 중앙 경로 목록을 해당 값에 넣으면 cd
전체 경로를 지정하지 않고도 해당 하위 경로에 액세스할 수 있습니다. cd
찾은 첫 번째 일치 항목에 당신을 배치합니다. stdout
표시되면 위치가 인쇄됩니다.
산출:
/home/mikeserv/1/2/3/4/dir
값은 :
콜론으로 구분됩니다 $PATH
. 따라서 디렉토리 이름이 이상하면 문제가 발생할 수 있습니다. 하지만 그것은 매우 유용할 수 있습니다. 이것은POSIX 지정- 모든 최신 쉘에서 작동해야 하며 다음을 기대합니다.
cd ..; rm -rf dir; cd dir
산출:
/home/mikeserv/3/2/1/dir
:
그러나 콜론을 사용하여 값을 여는 것을 확인하세요 . 대부분의 쉘에서 이를 사용하면 선행 없이 현재 디렉토리의 하위 디렉토리에 액세스 $CDPATH
할 수 있습니다 . 이것이 선행하는 빈 필드가 나타내는 것입니다.cd
./
:
그렇기 때문에 당신이 가고 싶지 않더라도 떠나보내는 것에 대해 걱정할 필요가 없습니다.하다정규화된 경로 사용(기본적으로 cd
a 또는 a로 .
시작하는 모든 매개변수 /
) cd
전혀 설명하지 마세요.