.
bash에서 시작하지 않는 디렉토리의 모든 하위 디렉토리를 이동하고 싶습니다 .
예를 들어 다음과 같은 디렉터리 구조가 있다고 가정합니다.
subdir1/
subdir2/
.idea/
.venv/
이 명령은 특정 대상 subdir1/
으로 만 이동해야 합니다.subdir2/
답변1
다음을 간단히 사용할 수 있습니다.
mv */ ../target_dir/
기본 동작을 변경하기 위해 bash 옵션을 명시적으로 설정하지 않으면 패턴은 bash에서 시작하는 폴더와 */
일치하지 않습니다 ( 셸 옵션이 설정되지 않은 경우). 자세한 내용은 man 파일 사용: 을 참조하세요 ..
dotglob
GLOBIGNORE
man bash
답변2
그리고 find
:
find . ! -name '.*' -type d -exec mv -- {} ../target_dir \;
현재 디렉토리만 원하는 경우:
find . -maxdepth 1 ! -name '.*' -type d -exec mv -- {} ../target_dir \;
dotglob
설정 방법을 안정적으로 기대할 수 없습니다 .