"ls -l *"을 사용하여 예외를 추가할 수 있습니까?

"ls -l *"을 사용하여 예외를 추가할 수 있습니까?

ls -l *예를 들어 모든 디렉토리의 내용을 인쇄하는 것이 가능합니까 ? 예를 test.cpp 들어 test.cpp.

답변1

활성화 한 경우 glob을 사용하여 이를 수행할 수 있습니다 extglob. 다음을 사용하여 활성화할 수 있습니다.

shopt -s extglob

그리고 다음과 같이 사용할 수 있습니다:

ls -l !(test.cpp)

다른 방법으로도 사용할 수 있습니다.

ls -l !(*.jpg) # list all files that don't have .jpg extensions

이것은 쉘 글로브이므로 다른 명령과 함께 사용할 수도 있습니다. 그러나 한 가지 부작용은 모든 하위 디렉터리가 명시적으로 나열된다는 것입니다. 즉, 하위 디렉터리 ls도 나열된다는 의미입니다. 하지만 다음을 사용하면 쉽게 처리할 수 있습니다.

ls -ld !(test.cpp)

답변2

이를 수행하는 고전적인(순진한?) 방법은 다음과 같습니다.

  ls -l * | grep -v test.cpp

그러나 Lamar가 언급한 것처럼 GNU에는 ls특정 파일 이름을 무시할 수 있는 옵션이 있습니다.

  ls -l -I test.cpp *

참고는 ls -l *현재 디렉터리의 파일을 나열합니다.및 첫 번째 수준 하위 디렉터리의 파일. 당신 ls -l*

관련 정보