인수가 전달되지 않을 때 "ls -d"가 "." 표시를 건너뛰게 하는 방법이 있습니까?

인수가 전달되지 않을 때 "ls -d"가 "." 표시를 건너뛰게 하는 방법이 있습니까?

findxargs결과 에 명령이 전달되었습니다 ls -d. 일치하는 파일이 없으면 다음을 얻습니다.

.

내 유일한 출력은 기본적으로 ls -d다음과 같습니다.

.

..., (파일 이름) 인수가 지정되지 않은 경우. 매개변수를 전달하지 않을 때 ls -d이를 생략 .하고 출력을 표시하지 않는 방법이 있습니까?

고쳐 쓰다ls -d:당신은 보여주지 않겠다고 확신할 수 없습니다 .:

.

ls -d -A\                # Skip implied
   --hide=.\             # No, really, skip implied
   --ignore=.            # I mean it, damn it!

.

:)

답변1

xargs와 함께 사용하기에는 find너무 1980년대입니다 ...

예를 들면 다음과 같습니다.

find . -type d -exec ls -d {} + 

그리고 ls 명령은 인수 없이 호출되지 않습니다.

findDavid Korn은 1989년 SVr4에 execplus 기능을 추가했습니다.

답변2

당신이 태그했어요, 따라서 아마도 다음 옵션이 있는 GNU xargs를 실행할 것입니다.

-r, --no-run-if-empty
    If the standard input does not contain any nonblanks, do not run the command. 

의 경우 find ... | xargs -r ls -d, 아무것도 일치하지 않으면 ls전혀 시작되지 않습니다.find

find여전히 .명시적으로 일치할 수 있습니다. 이를 방지하려면 ! -name .찾기 표현식에 추가하세요. 또는 명령줄에 제공된 경로와 일치하는 것을 -mindepth 1방지하려면 (GNU 찾기에서)를 사용하세요.find

ls( 무시 하는 방법은 .잘 모르겠습니다.)

관련 정보