![Warum dauert ls -al plötzlich so lange?](https://rvso.com/image/1481852/Warum%20dauert%20ls%20-al%20pl%C3%B6tzlich%20so%20lange%3F.png)
Dauert plötzlich ls -al
nervig lange, im Normalfall ls
geht es immer so schnell wie immer.
Was kann das Problem sein?
Antwort1
Wenn ls
es ausgeführt wird, zeigt es Ihnen nur eine Liste von Dateien und sonst nichts. ls -al
Auf der anderen Seite zeigt es viel mehr Informationen, und um das zu tun, muss esStatistik(1)diese Dateien.
Und wenn mit der Datei etwas nicht stimmt, kann dieser Vorgang möglicherweise lange dauern.
Mein Problem war, dass die Gruppe einiger Dateien nicht mehr existierte
-rw------- 1 nifle 10001 21499 Jan 25 14:31 .bash_history
-rw-r--r-- 1 nifle 10001 304 Dec 6 2004 .bash_logout
-rw-r--r-- 1 nifle 10001 222 Dec 16 14:05 .bash_profile
-rw-r--r-- 1 nifle 10001 124 Dec 6 2004 .bashrc
Das Problem ließ sich einfach chown nifle:nifle .bash*
lösen.
Antwort2
Manchmal kann es sich um einen Alias, zusätzliche Verarbeitung durch die Shell oder langsamen Zugriff auf das Speichergerät handeln.
Auf meinem habe ich es als Alias:
$ type ls
ls is aliased to `ls $LS_OPTIONS'
Wenn dies der Fall ist, \ls -al
könnte „running as“ es direkt aufrufen.
Bei der Shell-Verarbeitung können Sie dies überprüfen, indem Sie Shell Tracing aktivieren, z. B.
$ set -x
$ ls
+ ls -G -h
README.txt index.php
++ update_terminal_cwd
++ local url_path=
++ local i ch hexch LC_CTYPE=C LC_ALL=
++ (( i = 0 ))
++ (( i < 26 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 26 ))
++ ch=U
++ [[ U =~ [/._~A-Za-z0-9-] ]]
++ url_path+=U
++ (( ++i ))
++ (( i < 26 ))
++ ch=s
... hundred of other lines
$ set +x
$ echo $PROMPT_COMMAND
update_terminal_cwd
Überprüfen Sie abschließend Ihre ls
Zeiten:
$ time ls -la
...
real 0m0.025s
user 0m0.001s
sys 0m0.004s
Wenn Ihre sys
Zeit zu hoch ist, prüfen Sie load avg
im top
Befehl, ob irgendetwas Ihren Computer momentan verlangsamt. Alternativ führen Sie einen Benchmarking-Test Ihrer Festplatte durch. Möglicherweise laufen bei Ihnen viele E/A-Anfragen (Prüfung mit: iotop
oder vmstat
).
Wenn dies relativ oft vorkommt, überprüfen Sie es immer mit einer anderen Shell oder auf der tmpfs-Partition ( /tmp
), was viel schneller sein sollte.