하위 디렉터리를 동일한 디렉터리의 다른 하위 디렉터리로 이동하는 방법은 무엇입니까?

하위 디렉터리를 동일한 디렉터리의 다른 하위 디렉터리로 이동하는 방법은 무엇입니까?

디렉토리가 있습니다 dir/. 하위 디렉터리가 포함되어 있습니다 a. 하위 디렉터리를 하위 디렉터리 로 z이동해야 합니다 . 이것이 어렵다면 - 대신 이동해야 하는 디렉토리 목록을 제공하십시오.ayzaz

Bash에서 어떻게 할 수 있나요?

답변1

버팀대 확장 사용:http://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html

귀하의 경우에는 다음을 수행하십시오.

mv {a..y} z/

dir1, dir2및 와 같은 디렉터리 목록이 있는 경우 dir3다음을 수행합니다.

mv -t z/ dir1 dir2 dir3

아니면:

mv -t z/ dir{1..3}

간략한 설명:

  • -t옵션은 "대상"을 의미합니다. 여러 파일/디렉터리 이동과 관련된 상황에서 혼동을 피하기 위해 자주 사용됩니다.
  • 브레이크 확장은 {1..15}1부터 15까지의 모든 숫자를 인쇄하고 에서 까지의 모든 문자를 {a..f}인쇄하여 작동합니다 .af

답변2

나의 안전한 사용 방법에 관해서는find

find dir/* -prune -type d -name "[a-y]" ! -name "z" -exec mv -t dir/z {} +

답변3

참고: 이것은 가장 깨끗한 접근 방식이 아닙니다(shivams의 답변 참조).오직a-z내부에 디렉토리가 있습니다 dir.


나는 항상 기억하기 쉬운 것을 사용합니다.

mv * z

당연히 불평한다

mv: cannot move ‘z’ to a subdirectory of itself, ‘z/z’

하지만 그렇지 않으면 원하는 대로 하세요.

이는 (적어도) 다음에 적용됩니다.GNU coreutils

관련 정보