cp를 사용하여 기존 폴더를 덮어쓸 수 있습니까? 예:
tux@linux:~ $ cd /tmp/test/
tux@linux:/tmp/test $ mkdir A
tux@linux:/tmp/test $ cd A
tux@linux:/tmp/test/A $ touch 1 2 3 4
tux@linux:/tmp/test/A $ cd ..
tux@linux:/tmp/test $ cp -R A A.bak
tux@linux:/tmp/test $ tree
.
├── A
│ ├── 1
│ ├── 2
│ ├── 3
│ └── 4
└── A.bak
├── 1
├── 2
├── 3
└── 4
2 directories, 8 files
tux@linux:/tmp/test $ touch A/5
tux@linux:/tmp/test $ tree
.
├── A
│ ├── 1
│ ├── 2
│ ├── 3
│ ├── 4
│ └── 5
└── A.bak
├── 1
├── 2
├── 3
└── 4
2 directories, 9 files
tux@linux:/tmp/test $ cp -R A A.bak
tux@linux:/tmp/test $ tree
.
├── A
│ ├── 1
│ ├── 2
│ ├── 3
│ ├── 4
│ └── 5
└── A.bak
├── 1
├── 2
├── 3
├── 4
└── A
├── 1
├── 2
├── 3
├── 4
└── 5
3 directories, 14 files
하지만 다음과 같아야 합니다.
.
├── A
│ ├── 1
│ ├── 2
│ ├── 3
│ ├── 4
│ └── 5
└── A.bak
├── 1
├── 2
├── 3
├── 4
└── 5
2 directories, 10 files
답변1
이것이 당신이 찾고 있는 것입니다
cp -TRv A A.bak
이 옵션을 사용하면 -T
내용을 덮어쓰고 대상을 디렉터리가 아닌 일반 파일로 처리합니다.
에서 man cp
:
-T, --no-target-directory
treat DEST as a normal file
-v, --verbose
explain what is being done
또는 다음과 같이 디렉터리 대신 디렉터리의 내용을 복사합니다.
cp -TR A/* A.bak