아래 두 코드를 사용하고 있습니다.
ls -lap . | grep -v "/$"
ls -lap . | grep -v "/"
어떤 경우에는 두 가지가 서로 다른 결과를 제공합니다. 이 맥락에서 $는 무엇을 의미합니까?
답변1
줄의 끝을 나타내는 정규식입니다. 이 명령은 출력에서 디렉터리를 제외하는 데 사용됩니다 . 출력에 줄 끝을 제외한 모든 위치에 조건이 포함될지 확신할 수 없지만 , 실제로 그런 경우라면 두 명령의 출력은 다음 ls
과 같습니다. 동일하지 않습니다./
ls -lap .
/
다음 예를 참조하세요.
$ ls -lap .
total 12
drwxr-xr-x 3 jesse_b jesse_b 4096 Apr 13 10:00 ./
drwxr-xr-x 12 jesse_b jesse_b 4096 Apr 13 09:59 ../
drwxr-xr-x 2 jesse_b jesse_b 4096 Apr 13 10:00 bar/
-rw-r--r-- 1 jesse_b jesse_b 0 Apr 13 09:59 foo
-rw-r--r-- 1 jesse_b jesse_b 0 Apr 13 10:00 oof
$ ls -lap . | grep -v "/$"
total 12
-rw-r--r-- 1 jesse_b jesse_b 0 Apr 13 09:59 foo
-rw-r--r-- 1 jesse_b jesse_b 0 Apr 13 10:00 oof
$ ls -lap . | grep -v "o$"
total 12
drwxr-xr-x 3 jesse_b jesse_b 4096 Apr 13 10:00 ./
drwxr-xr-x 12 jesse_b jesse_b 4096 Apr 13 09:59 ../
drwxr-xr-x 2 jesse_b jesse_b 4096 Apr 13 10:00 bar/
-rw-r--r-- 1 jesse_b jesse_b 0 Apr 13 10:00 oof
$ ls -lap . | grep -v "o"
drwxr-xr-x 3 jesse_b jesse_b 4096 Apr 13 10:00 ./
drwxr-xr-x 12 jesse_b jesse_b 4096 Apr 13 09:59 ../
drwxr-xr-x 2 jesse_b jesse_b 4096 Apr 13 10:00 bar/