디렉토리가 있습니다 dir/
. 하위 디렉터리가 포함되어 있습니다 a
. 하위 디렉터리를 하위 디렉터리 로 z
이동해야 합니다 . 이것이 어렵다면 - 대신 이동해야 하는 디렉토리 목록을 제공하십시오.a
y
z
a
z
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}
인쇄하여 작동합니다 .a
f
답변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