Как составить список каталогов «выше» рабочего каталога

Как составить список каталогов «выше» рабочего каталога

Мой профессор показал мне, как перечислить каталоги выше текущего рабочего каталога с помощью команды cd. Я думал, что это cd ..[tab], но это перечисляет команды в моем текущем каталоге.

решение1

Я предполагаю, что вы просто хотите вывести список каталогов родительского каталога текущего каталога, вы можете использовать find:

find .. -maxdepth 1 -type d -not -name '..'

В качестве альтернативы вы можете использовать ls:

ls -p .. | grep '/$'

Или оболочка:

echo ../*/

или более подробно:

for i in ../*; do [ -d "$i" ] && echo "$i"; done

Или при zshиспользовании квалификатора glob /(хотя это излишне :)):

echo ../*(/)

решение2

cd ..переходит в каталог, расположенный выше текущего рабочего каталога в дереве.

Например,

home:$ pwd
/home

home:$ cd ..

:$ pwd
/

Что касается перечисления каталогов в родительском каталоге, ответ heemayl's достаточно охватывает это. Я просто добавлю еще один:

 stat ../* --format="%n %F"  | awk '/directory/'     

решение3

Если вы хотите вывести список содержимого «вышеуказанного» рабочего каталога (родительского каталога), используйте:

ls ..

Однако он показывает как файлы, так и каталоги родительской папки.

Связанный контент