ls -- color 사용

1914 단어 greplstail--color
1. 문제 의 발견:
오늘 아주 간단 한 셸 을 썼 는데 예상 한 결과 와 달 랐 습 니 다.
$ ls -1 | tail -1
$

현재 디 렉 터 리 에서 기본 정렬 된 마지막 파일 을 가 져 오 려 고 했 지만 정 보 를 얻 지 못 했 습 니 다.
그러나 내 가 한 대본 에 쓴 이 말 은 정확 한 결 과 를 얻 었 다.
$ cat test.sh
#!/bin/bash
ls -1 | tail -1
$ ./test.sh
test.sh

마지막 으로 발견 한 것 은 나의 현재 bash 에서 ls 는 나 에 게 별명 을 사 용 했 기 때문이다.
$ type ls
ls is aliased to `ls -F --color'

관건 은 바로
$ /bin/ls -1 | tail -1
test.sh

이것 제거 하면 됩 니 다. - color 의 색상 제어 문자 로 인 한 것 일 것 입 니 다. 그런데 왜 마지막 행동 이 비어 있 는 지 자세히 연구 하지 않 았 습 니 다.
2, 문제 의 해결
이 문 제 를 어떻게 해결 할 것 인가? ls help 파일 을 보고 다음 과 같은 말 이 있 습 니 다.
With --color=auto, color codes are output
       only if standard output is connected to a terminal (tty)

그 러 니까 컬러 = auto 를 사용 하면 돼 요.
$ ls --color | tail -1
$ ls --color=auto | tail -1
test.sh*

3. 문제 의 발전
집에 가서 보니까 ls 버 전과 도 관련 이 있 더 라 고요.
$ /bin/ls --color | tail -1
$ /usr/local/bin/ls --color | tail -1
Workspace

$ /bin/ls --v
ls (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard Stallman and David MacKenzie.
$ /usr/local/bin/ls --v
ls (GNU coreutils) 8.12
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard M. Stallman and David MacKenzie.

그러나 어쨌든 - color = auto 가 가장 안전 하 다.
자신 이 자주 사용 하 는 것 은 grep -- color 도 바 뀌 었 다 -- color = auto ^_^ 가장 쉬 운 기록 일 뿐 입 니 다.

좋은 웹페이지 즐겨찾기