"."로 시작하지 않는 디렉토리를 이동하는 명령입니다.

"."로 시작하지 않는 디렉토리를 이동하는 명령입니다.

.bash에서 시작하지 않는 디렉토리의 모든 하위 디렉토리를 이동하고 싶습니다 .

예를 들어 다음과 같은 디렉터리 구조가 있다고 가정합니다.

subdir1/
subdir2/
.idea/
.venv/

이 명령은 특정 대상 subdir1/으로 만 이동해야 합니다.subdir2/

답변1

다음을 간단히 사용할 수 있습니다.

mv */ ../target_dir/

기본 동작을 변경하기 위해 bash 옵션을 명시적으로 설정하지 않으면 패턴은 bash에서 시작하는 폴더와 */일치하지 않습니다 ( 셸 옵션이 설정되지 않은 경우). 자세한 내용은 man 파일 사용: 을 참조하세요 ..dotglobGLOBIGNOREman bash

답변2

그리고 find:

find . ! -name '.*' -type d -exec mv -- {} ../target_dir \;

현재 디렉토리만 원하는 경우:

find . -maxdepth 1 ! -name '.*' -type d -exec mv -- {} ../target_dir \;

dotglob설정 방법을 안정적으로 기대할 수 없습니다 .

관련 정보