Bash

從符號連結文件夾中辨識符號連結

  • December 2, 2021

假設我在控制台中的子文件夾中,即符號連結(軟)文件夾的子文件夾(或孫子文件夾等)。

從子文件夾中,如果我什麼都不做,則ls -la表明所有文件都在符號連結文件夾中。

我怎麼會知道呢?目前,我必須去父文件夾才能知道這一點。

但這意味著通過測試錯誤查找,測試文件夾的所有層次結構,直到到達父級(連結)。

基於@ajgringo619

這解決了它:

# includes complete left path
alias ll2='if [[ $(diff <(ls "$PWD" | sed "s|.*|$(ls -d "$PWD/")&|g") <(ls -d "$(pwd -P)/"*) | wc -l) == "0" ]]; then ls -l; else paste -d " -> " <(ls "$PWD" | sed "s|.*|$(ls -d "$PWD/")&|g") /dev/null /dev/null /dev/null <(ls -d "$(pwd -P)/"*); fi'

# or 

alias ls2='if [[ $(diff <(ls "$PWD" | sed "s|.*|$(ls -d "$PWD/")&|g") <(ls -d "$(pwd -P)/"*) | wc -l) == "0" ]]; then ls -l; else paste -d " -> " <(ls "$PWD") /dev/null /dev/null /dev/null <(ls -d "$(pwd -P)/"*); fi'

我添加$(pwd -P)到我的 bash 提示符中;這給出了真正的文件夾名稱而不是符號連結的名稱。ls我知道沒有命令開關可以給你你想要的。但至少更改提示將為您提供目前所在的確切位置。

引用自:https://unix.stackexchange.com/questions/604837