유닉스 명령으로 기존 디렉토리 구조에 덮어쓰기

체스맨의 이미지

어떤 경로(srcpath)의 파일들과 하부 디렉토리들을 모두 다른 경로(destpath)로 이동 합니다.

단, destpath 에는 srcpath 에 존재하는 파일이나 디렉토리 구조를 동일하게 가지고 있을 수도 있고 없을 수도 있습니다.

그래서 mv 로는 잘 안됩니다. 방법이 있을까요?

다른 방안으로는 일단 srcpath 에서 파일만 find 를 해서 나온 파일리스트들을 destpath 로 이동 하되, 그 파일의 경로를 유지할 수 있을까요? 예를 들어,

srcpath/hello/world/mydoc.txt 를 destpath 로 이동하라고 명령 내리면, destpath 에 hello/world 디렉토리가 있든 없든, destpath/hello/world/mydoc.txt 로 이동되는 것입니다.

적합한 유닉스 명령어, 또는 일정 수준의 명령어 조합으로 불가능하다면 뭐든 구현을 할 생각입니다.

sephiron의 이미지

tar를 사용하시면 될 것 같습니다. srcpath디렉토리 내에서 tar cf src.tar ./ 하신 후 tar xf src.tar를 destpath에서 실행시켜주면 되겠군요. 덮어씀에 관해서는 옵션을 참조하시고요.

체스맨의 이미지

좋은 방법인 것 같습니다. 지금 문제는 해결할 수 있을 것 같네요.
단, 파일이 큰 경우 같은 파일 시스템상에서 파일 옮기기 성능이 떨어질 것 같군요.
그리고, 복사 성능도 tar 에 한번 묶인 뒤 다시 풀어내야되니, 느려질 것 같구요.

Orion Project : http://orionids.org

마잇의 이미지

그 문제는 파이프를 쓰시면 해결 될 겁니다.

tar cf - | tar xf -

파일 이름 들어가는 곳에 - 를 쓰면 보통 표준 입출력으로 동작하더군요.
--
마잇


--
마잇

aero의 이미지

cp man page를 보면
다음과 같은 option이 있습니다.
-a, --archive
same as -dpR
테스트

$ls ./srcpath/hello/world/
mydoc.txt
$ls ./destpath
ls: destpath: 그런 파일이나 디렉토리가 없음
$cp -a srcpath destpath
$ls ./destpath/hello/world/
mydoc.txt

정태영의 이미지

dst 폴더가 있을 경우엔
cp -rf src/* dst/

없을 경우엔
cp -rf src dst

면 되지 않을까요 ;)

---
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

체스맨의 이미지

-_-;

cp 는 그냥 되는군요..
어제 깊은밤에 cp 는 안해봤었나봅니다.
mv 는 -r 옵션이 없구요...-_-;

mv 가 안되는 문제로 정정하겠습니다.

다음이 원문이고,

------- 어떤 경로(srcpath)의 파일들과 하부 디렉토리들을 모두 다른 경로(destpath)로 복사 ( 또는 이동 ) 합니다.

단, destpath 에는 srcpath 에 존재하는 파일이나 디렉토리 구조를 동일하게 가지고 있을 수도 있고 없을 수도 있습니다.

그래서, cp -rf 이나 mv -rf 로는 잘 안됩니다. 방법이 있을까요?

다른 방안으로는 일단 srcpath 에서 파일만 find 를 해서 나온 파일리스트들을 destpath 로 복사 ( 또는 이동 ) 하되, 그 파일의 경로를 유지할 수 있을까요? 예를 들어,

srcpath/hello/world/mydoc.txt 를 destpath 로 복사 ( 또는 이동 ) 하라고 명령 내리면, destpath 에 hello/world 디렉토리가 있든 없든, destpath/hello/world/mydoc.txt 로 복사되는 것입니다.

적합한 유닉스 명령어, 또는 일정 수준의 명령어 조합으로 불가능하다면 뭐든 구현을 할 생각입니다.
------------

원문은 수정해놓겠습니다.

Orion Project : http://orionids.org

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.