각기 다른 디렉토리에 있는 파일을 한 곳으로 모으는 방법-조언 좀 부탁합니다.

myhong74의 이미지

항상 받아 먹기만 하는것 같아서 죄송하네요.

리눅스 서버를 운영중인데

100개가 넘는 디렉토리에 있는 파일을

하나의 디렉토리로 옮기는 방법을 고민 중입니다.

일일히 cp 나 mv 명령어를 쓰기에는 너무 불편하고

좋은 방법이 있을 까요?

조언 좀 부탁드립니다.

visualplus의 이미지

그냥 쉘스크립트 사용하시면 될 것 같은데요
가령

/a/b/*
/a/c/*
/a/d/*

이런 것들을 /aa/ 로 모두 옮기고 싶으시다면

우선 $( ls /a ) 이렇게 a안에있는 목록들은 얻어와
for문으로 그 안에있는것을 /aa로 mv나 cp하라는것을 하면 될 듯 한데..

redneval의 이미지

Brace Expansion 을 잘 활용해보세요.

http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion

다음과 같이 사용할 수 있습니다.

cp  prefix{src_dir1,src_dir2,...}/*  target_dir

--------------------Signature--------------------
Light a candle before cursing the darkness.

planetarium의 이미지

해당 디렉토리들이 한곳에 모여있다면 해당 위치로 가셔서
find -type f -exec mv {} (TARGET_DIR) \;
이런식으로 하시면 한큐에 될것 같습니다. 테스트는 필수...

hiseob의 이미지

cp /*/*/*/*/*/*/* ./
:D?