
모든 상위 디렉토리 목록을 얻는 방법.
내가 현재
% pwd
/media/blueray/WDPurple/_DataBackup/_Work/_NotesFilteredADOC/linux/shell-command-language/zsh-scripting
나는 원해요
0 /media/blueray/WDPurple/_DataBackup/_Work/_NotesFilteredADOC/linux/shell-command-language/zsh-scripting
1 /media/blueray/WDPurple/_DataBackup/_Work/_NotesFilteredADOC/linux/shell-command-language
2 /media/blueray/WDPurple/_DataBackup/_Work/_NotesFilteredADOC/linux/
3 /media/blueray/WDPurple/_DataBackup/_Work/_NotesFilteredADOC/
4 /media/blueray/WDPurple/_DataBackup/_Work/
5 /media/blueray/WDPurple/_DataBackup/
6 /media/blueray/WDPurple/
7 /media/blueray/
8 /media/
9 /
rofi -dmenu
실제로 상위 디렉터리로 쉽게 CD를 이동할 수 있도록 이 출력을 파이프로 연결해야 합니다 .
내가 사용하고 있는 현재 솔루션은 다음과 pushd
같습니다.
function d () {
select=$( dirs -v | head -10 | rofi -dmenu )
cd -${select:0:1}
}
답변1
$PWD
한 번에 한 디렉터리 수준에서 시작하고 제거하는 루프를 사용합니다 . 으로 끝나는 것에 주의하면 됩니다 /
. 또한 라인 수(또는 파이프 통과 nl
)도 계산합니다. 다음은 bash와 zsh에서 모두 작동하는 기능입니다.
function pwd_and_parents {
local d n
d=$PWD
n=0
while [[ $d = *[!/]* ]]; do
printf '%d %s\n' "$n" "$d"
d=${d%/*}
((++n))
done
echo "$n /"
}
내 버전에는 후행 슬래시가 포함되지 않습니다. 원하는 경우 추가하세요.