%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A1%9C%20%EC%9D%B4%EB%8F%99%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
한 디렉터리에서 다른 디렉터리로 모든 파일(하위 디렉터리 제외)을 이동하는 방법 솔루션에서 기본 셸 스크립팅만 사용하고 싶습니다.
답변1
가장 간단한 방법:
for f in /some/path/*; do
if [ -f "$f" ]; then
mv "$f" /some/other/path
fi
done
약간 더 복잡한 접근 방식:
find /some/path -mindepth 1 -maxdepth 1 -type f -exec mv {} /dome/other/path \;
답변2
사용 find
:
find . -maxdepth 1 -type f -print0 | xargs -0 -I {} mv {} /path/to/target/directory/{}
이는 개행 문자가 포함된 파일 이름도 처리합니다.
답변3
cd $src
mv `find . -maxdepth 1 -type f -printf '%f\n'` $tgt
이 작업을 수행해야 합니다. $src
원본 폴더는 어디에 있고 $tgt
대상 폴더는 어디에 있습니까?
답변4
$ cd $SOURCE_DIR
$ mv `ls -p| grep -v /` $Target_dir
단계
- cd 명령을 사용하여 소스 디렉터리로 이동합니다.
- ls -p는 모든 디렉토리에 접미사 "/"를 추가합니다.
- grep -v는 디렉터리를 제외하고 일반 파일을 가져오는 데 사용됩니다.
- 마지막으로 모든 파일을 대상 디렉터리로 이동합니다.