서로 다른 두 폴더의 이름은 같지만 파일 크기가 다릅니다. 두 폴더를 비교하고 동시에 파일 크기의 차이를 알려줄 수 있는 Linux 명령이 있습니까?
답변1
bash
Stephen의 답변에 대한 대안 :
diff -u <(cd dir1 && du -a | sort -k2) <(cd dir2 && du -a | sort -k2)
이것과 Stephen의 답변은 모두 파일 이름에 줄 바꿈이 없다고 가정합니다.
답변2
사용하면 zsh
다음 vim
을 수행할 수 있습니다.
vim -d =(cd dir1 && du -a | sort -k2) =(cd dir2 && du -a | sort -k2)
( 또는 또는 선호하는 텍스트 비교 유틸리티 vim -d
로 대체할 수 있습니다 ).diff -u
kompare
명령 대체 형식은 일반 파일(예: ) 이 필요한 명령을 사용할 수 있도록 파이프 대신 임시 파일을 사용한다는 점만 제외하면 =(...)
ksh, zsh, bash와 동일합니다 . 해당 제한이 없는 명령(예 : )의 경우 를 사용할 수 있습니다 .<(...)
vim
diff
<(...)
답변3
디렉토리는 파일 이름과 inode 사이의 매핑일 뿐이며 "디렉토리에 파일"이 없습니다. ) 명령을 사용하여 디렉터리를 통해 액세스할 수 있는 파일의 크기를 물어볼 수 있습니다 du(1)
. 보고된 바와 같이 디렉토리 자체의 크기가 걱정된다면 ls -ld directory
여기에는 현재 파일 이름, 현재 삭제된 파일이 사용하는 공간, 패딩 및 다양한 관료주의가 포함됩니다.
액세스 가능한 파일의 이름/내용이 동일한지 알고 싶다면 cmp(1)
두 파일을 비교하십시오. 또는 diff(1)
( -r
플래그를 사용하여) 디렉터리를 재귀적으로 비교합니다(단, 텍스트에서는 작동합니다).