
갑자기 ls -al
짜증나게 오랜 시간이 걸리고, 정상은 ls
평소처럼 빠릅니다.
문제는 무엇입니까?
답변1
실행 되면 ls
파일 목록만 표시되고 다른 것은 표시되지 않습니다. ls -al
반면에 훨씬 더 많은 정보를 표시하므로 그렇게 하려면통계(1)그 파일들.
그리고 파일에 문제가 있는 경우 해당 작업에 시간이 오래 걸릴 수 있습니다.
내 문제는 일부 파일 그룹이 더 이상 존재하지 않는다는 것입니다.
-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
간단하게 chown nifle:nifle .bash*
문제를 분류했습니다.
답변2
때로는 별칭일 수도 있고, 셸에 의한 추가 처리일 수도 있고, 저장 장치에 대한 느린 액세스일 수도 있습니다.
내 경우에는 별칭으로 사용했습니다.
$ type ls
ls is aliased to `ls $LS_OPTIONS'
그렇다면 as를 실행하면 \ls -al
직접 호출할 수 있습니다.
쉘 처리의 경우 쉘 추적을 활성화하여 확인할 수 있습니다. 예:
$ 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
마지막으로 ls
시간을 확인하세요.
$ time ls -la
...
real 0m0.025s
user 0m0.001s
sys 0m0.004s
시간 이 sys
너무 길면 현재 컴퓨터 속도를 늦추는 것이 있는지 명령을 확인하십시오 load avg
. top
또는 하드 드라이브를 벤치마킹하십시오. 아마도 많은 I/O 요청이 진행 중일 수 있습니다(확인: iotop
또는 vmstat
).
이런 일이 자주 발생한다면 항상 다른 쉘이나 tmpfs 파티션( /tmp
)을 사용하여 확인하세요. 그러면 훨씬 더 빨라질 것입니다.