next:

| intro |
Jeder Prozess unter Linux – nicht nur eine Shell – hat ein aktuelles Verzeichnis. Wenn eine Datei geöffnet werden soll, kann diese auf zwei Arten identifiziert werden:
Wenn die Datei sich im aktuellen Verzeichnis befindet, dann verweisen die beiden Pfade auf dieselbe Datei. Wie absolute Pfade unter Linux funktionieren, wird in diesem Video erklärt. video link to the video about the single directory tree |
testuser@learnlinux: ~/cd-test$ ls -ld /proc/self/cwd lrwxrwxrwx. 1 testuser testuser 0 Apr 25 04:22 /proc/self/cwd -> /home/testuser/cd-test testuser@learnlinux: ~/cd-test$ realpath dir /home/testuser/cd-test/dir testuser@learnlinux: ~/cd-test$ realpath /home/testuser/cd-test/dir /home/testuser/cd-test/dir |
| call types |
|
testuser@learnlinux: /$ cd testuser@learnlinux: ~$ pwd /home/testuser testuser@learnlinux: ~$ cd - / testuser@learnlinux: /$ pwd / testuser@learnlinux: /$ cd - /home/testuser testuser@learnlinux: ~$ pwd /home/testuser
testuser@learnlinux: /$ cd /home/testuser/cd-test/ ; echo "$PWD" /home/testuser/cd-test testuser@learnlinux: ~/cd-test$ cd logical_dir ; echo "$PWD" /home/testuser/cd-test/logical_dir testuser@learnlinux: ~/cd-test/logical_dir$ cd - /home/testuser/cd-test testuser@learnlinux: ~/cd-test$ cd ./logical_dir ; echo "$PWD" /home/testuser/cd-test/logical_dir testuser@learnlinux: ~/cd-test/logical_dir$ cd ../../.. ; echo "$PWD" /home |
| details |
Symbolische Links werden in diesem Video erklärt. video link to the video about symlinks |
testuser@learnlinux: ~/cd-test$ ls -ld *_dir lrwxrwxrwx. 1 testuser testuser 12 Apr 25 04:21 logical_dir -> physical_dir drwxrwx---. 2 testuser testuser 4096 Apr 25 04:19 physical_dir testuser@learnlinux: ~/cd-test$ realpath logical_dir /home/testuser/cd-test/physical_dir testuser@learnlinux: ~/cd-test$ realpath physical_dir /home/testuser/cd-test/physical_dir |
| options |
Dies sind die beiden Optionen für
|
testuser@learnlinux: /$ cd /home/testuser/cd-test ; echo "$PWD" /home/testuser/cd-test testuser@learnlinux: ~/cd-test$ ls -ld *_dir lrwxrwxrwx. 1 testuser testuser 12 Apr 25 04:21 logical_dir -> physical_dir drwxrwx---. 2 testuser testuser 4096 Apr 25 04:19 physical_dir testuser@learnlinux: ~/cd-test$ cd logical_dir ; echo "$PWD" /home/testuser/cd-test/logical_dir testuser@learnlinux: ~/cd-test/logical_dir$ cd .. ; echo "$PWD" /home/testuser/cd-test testuser@learnlinux: ~/cd-test$ cd -P logical_dir ; echo "$PWD" /home/testuser/cd-test/physical_dir |
| recommendations |
Sehr häufig wechselt man erst in ein Verzeichnis und lässt sich dann dessen Inhalt anzeigen. Es bietet sich also an, |
testuser@learnlinux: ~$ cdl () { test $# -eq 1 || return 1; cd "$1" && ls -lhLa; }
testuser@learnlinux: ~$ cdl ls-test
total 24K
drwxrwx--- 3 testuser testuser 4.0K Mar 30 22:37 .
drwx------ 3 testuser testuser 4.0K Mar 29 20:51 ..
drwxrwx--- 2 testuser testuser 4.0K Mar 30 03:34 directory
-rw-rw---- 1 testuser testuser 0 Mar 30 03:33 dir.txt
-rw-rw---- 1 testuser testuser 0 Mar 29 20:52 .hidden_file
-rw-rw---- 1 testuser testuser 0 Mar 30 03:33 symlink
-rw-rw---- 1 testuser testuser 8.0K Mar 29 20:53 visible_file
-rw-rw---- 1 testuser testuser 0 Mar 30 22:40 visible_file2
-rw-rw---- 1 testuser testuser 10 Mar 30 22:37 visible_file3
|
| see also |
Eine mächtigere Version von
video link to the video about pushd |
testuser@learnlinux: ~/ls-test$ cd / testuser@learnlinux: /$ pushd /etc /etc / testuser@learnlinux: /etc$ pushd /home/testuser/ ~ /etc / testuser@learnlinux: ~$ pushd /home/testuser/cd-test/physical_dir/ ~/cd-test/physical_dir ~ /etc / testuser@learnlinux: ~/cd-test/physical_dir$ pushd +1 ~ /etc / ~/cd-test/physical_dir testuser@learnlinux: ~$ pushd +1 /etc / ~/cd-test/physical_dir ~ testuser@learnlinux: /etc$ pushd +1 / ~/cd-test/physical_dir ~ /etc
testuser@learnlinux: /$ # much better with aliases testuser@learnlinux: /$ alias p=pushd pp='pushd +1' p0='pushd -0' d=dirs testuser@learnlinux: /$ d / ~/cd-test/physical_dir ~ /etc testuser@learnlinux: /$ pp ~/cd-test/physical_dir ~ /etc / testuser@learnlinux: ~/cd-test/physical_dir$ pp ~ /etc / ~/cd-test/physical_dir testuser@learnlinux: ~$ pp /etc / ~/cd-test/physical_dir ~ testuser@learnlinux: /etc$ p0 ~ /etc / ~/cd-test/physical_dir testuser@learnlinux: ~$ |