다음과 같은 폴더 구조가 있습니다.
/domains/some-domain-1/applications/j2ee-apps
/domains/some-domain-2/applications/j2ee-apps
/domains/some-domain-3/applications/j2ee-apps
상위 폴더와 하위 폴더가 동일한 폴더를 처리하는 가장 좋은 방법은 무엇입니까? 예를 들어, cd
다른 도메인 폴더의 사촌 디렉터리에 액세스 하려는 경우 j2ee-apps
쉬운 방법이 있습니까? ls
최상위 수준에서 를 실행하고 맨 아래 폴더(예: )에 있는 모든 항목을 가져오려면 어떻게 j2ee-apps
해야 합니까 ?
이 문제를 가장 잘 처리하는 방법에 대한 현명한 제안이 있는 사람이 있습니까?
답변1
의 경우 ls
다음 명령을 사용하여 전체 목록을 얻을 수 있습니다.
ls /domains/*/applications/j2ee-apps
한 지점에서 다른 지점으로 전환하려면 원하는 것을 쉽게 달성할 수 있는 방법이 없습니다.
답변2
변형 부분을 보유하도록 변수를 설정할 수 있습니다. 이와 같이:
domain='some-domain-1'
cd /domains/$domain/applications/j2ee-apps
domain='some-domain-2'
cd /domains/$domain/applications/j2ee-apps
cd 명령은 동일하므로 화살표 키를 사용하여 셸에서 호출할 수 있습니다.
이 작업을 얼마나 자주 수행하는지에 따라 에서 이 작업을 수행해야 할 수도 있습니다 .bashrc
.
cdj2(){
cd /domains/"$1"/applications/j2ee-apps
}
그러면 할 수 있습니다 cdj2 some-domain-1
.
쉘 와일드카드(일명경로명 확장) 다른 부분을 처리할 수 있습니다(참조:스테판 히메네즈의 답변). find
이 명령은 디렉터리 구조가 정확히 동일하지는 않지만 특정 이름과 일치하는 모든 파일을 보고 싶은 경우에 유용합니다.
find /domains -name 'j2ee-apps' -exec ls {} \;