중간 파일에 쓰지 않고 두 디렉토리에서 파일 이름을 어떻게 다른지? `ls -1a ./dir2` 그러나 그것은 명백한 이유로

나는 다음 라인을 따라 무언가를하려고합니다.

diff `ls -1a ./dir1` `ls -1a ./dir2`

그러나 그것은 명백한 이유로 작동하지 않습니다. 이것보다 (1 줄에) 이것을 달성하는 더 좋은 방법이 있습니까?

ls -1a ./dir1 > lsdir1
ls -1a ./dir2 > lsdir2
diff lsdir1 lsdir2

감사



답변

당신은 가까이있었습니다. bash에서는 명령 대체가 아닌 프로세스 대체 를 원합니다 .

diff <(ls -1a ./dir1) <(ls -1a ./dir2)

답변

diff -rq dir1 dir2

-r 옵션을 사용하여 전체 디렉토리 트리를 이동하여 각 디렉토리의 비슷한 지점에서 발생하는 서브 디렉토리와 파일의 차이점을 재귀 적으로 점검하십시오. 트릭은 -q 옵션을 사용하여 라인 별 비교를 억제하는 것입니다.