디렉터리 계층 구조 목록을 단일 디렉터리로 병합하고 싶습니다. 나중에 목록에있는 중복 된 파일은 이전 파일을 대체합니다. 예를 들어 ... 여러 디렉토리를 하나의 디렉토리에 평평하게하고 오버레이하려면 어떻게해야합니까?
foo/This/That.pm
bar/This/That.pm
bar/Some/Module.pm
wiff/This/That.pm
wiff/A/Thing/Here.pm
이것은
This/That.pm # from wiff/
Some/Module.pm # from bar/
A/Thing/Here.pm # from wiff/
와 바람 것이라고 나는이 작업을 수행 할 수있는 아마 복잡한 펄 이상 프로그램이 있습니다. 나는 SO 사용자가 해결할 수있는 영리한 방법에 관심이있다. 가장 큰 장애물은 basename과 dirname을 조합 한 "필요한 경우 중간 디렉토리 만들기"입니다.
진짜 문제는 두 개의 설치된 Perl 라이브러리의 차이점을 확인하는 것입니다. 필자는 각 Perl에 대한 여러 라이브러리 디렉토리를 단일 디렉토리로 단순화하여 Perl이 모듈을 검색하는 방법을 시뮬레이션합니다. 그런 다음 diff -r
수 있습니다. 당신이 항목의 마지막 순서를 신경 쓰지 않는 경우
orde 레이어 링이 중요하므로 링이 올바르게 작동합니다. 결과의 최종 순서는 중요하지 않습니다. 나는 결코'선언 '을 보지 못했고 배시에는 해시가 있는지 전혀 몰랐습니다! 나는 files.txt가'find라고 추정한다. - 타입 f를'문제의 디렉토리? – Schwern
정확히 find를 할 수 있다고 생각합니다. -type f'; 직접 실행하려면, 다음을 수행하여 임시 파일을 만들 수 있습니다 : while while ...; do ..; done <(find. -type f)' – Rubens