![cp는 Mac에서 다르게 작동합니다.](https://linux55.com/image/148102/cp%EB%8A%94%20Mac%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B4%EA%B2%8C%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4..png)
전체 폴더를 복사하려면 다음 코드가 있습니다.
#!/bin/bash
B="H:\pdf2txt"
DST_DIR="H:\Test_Folder"
cp -r "$B" "$DST_DIR"
이는 Windows 컴퓨터에서는 예상대로 작동하지만 Mac으로 변경하면 다음과 같습니다.
#!/bin/bash
B="/Volumes/Mac_Storage/pdf2txt"
DST_DIR="/Volumes/Mac_Storage/Test_folder"
cp -r "$B" "$DST_DIR"
폴더를 복사한 다음 파일 경로가 너무 길어 처리할 수 없을 때까지 폴더에 동일한 내용이 포함된 또 다른 복사본을 추가한 다음 다시 동일한 내용을 추가합니다. 폴더 구조는 다음과 같습니다.
Test_Folder
| └── pdf2txt
| ├── test1.txt
| ├── test2.txt
| └── pdf2txt
| ├── test1.txt
| ├── test2.txt
| └── pdf2txt
| ├── test1.txt
| ├── test2.txt
| └── pdf2txt
| ├── test1.txt
| ├── test2.txt
| └── pdf2txt
| ├── test1.txt
| ├── test2.txt
| └── pdf2txt
| ├── test1.txt
| ├── test2.txt
| └── pdf2txt
등등..
Windows와 Mac에서 왜 다르게 작동하는지 아시나요?
답변1
제 생각에는텔레콤의 답변스니핑의 주된 이유: 다른 심볼릭 링크일 뿐이고 심볼릭 링크가 포함될 수 있습니다.
내 실험에 따르면 요구 사항을 충족하는 일련의 상황이 있습니다.
Test_folder
네, 심볼릭 링크pdf2txt
, 그리고cp
OP는 BSD 유산을 지닌 네이티브 macOS를 사용하고 있습니다 .
이러한 심볼릭 링크는 macOS cp
의 루프 감지를 중단합니다. (GNU는 cp
이미 설치되어 있습니다.스스로 만든또는 재귀적으로 복사하는 경우에도 기본적으로 심볼릭 링크를 따르지 않는 다른 패키지 관리자입니다. )
다음은 macOS High Sierra에서 테스트한 데모입니다.
$ ln -s pdf2txt Test_folder
$ ls -lAF Test_folder
lrwxr-xr-x 1 aho staff 7 Feb 13 20:13 Test_folder -> pdf2txt/
$ /bin/cp -r pdf2txt Test_folder
cp: Test_folder/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt: name too long (not copied)
cp: Test_folder/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt: name too long (not copied)
# Let's just look at the first 30 lines of a recursive ls
# (And yes, we're looking at pdf2txt)
$ ls -lRAF pdf2txt | head -n 30
pdf2txt:
total 0
drwxr-xr-x+ 5 aho staff 170 Feb 13 20:13 pdf2txt/
-rw-r--r--+ 1 aho staff 0 Feb 13 19:43 test1.txt
-rw-r--r--+ 1 aho staff 0 Feb 13 19:43 test2.txt
pdf2txt/pdf2txt:
total 0
drwxr-xr-x+ 3 aho staff 102 Feb 13 20:13 pdf2txt/
-rw-r--r--+ 1 aho staff 0 Feb 13 20:13 test1.txt
-rw-r--r--+ 1 aho staff 0 Feb 13 20:13 test2.txt
pdf2txt/pdf2txt/pdf2txt:
total 0
drwxr-xr-x+ 3 aho staff 102 Feb 13 20:13 pdf2txt/
pdf2txt/pdf2txt/pdf2txt/pdf2txt:
total 0
drwxr-xr-x+ 3 aho staff 102 Feb 13 20:13 pdf2txt/
pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt:
total 0
drwxr-xr-x+ 3 aho staff 102 Feb 13 20:13 pdf2txt/
pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt:
total 0
drwxr-xr-x+ 3 aho staff 102 Feb 13 20:13 pdf2txt/
pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt/pdf2txt:
total 0
답변2
/Volumes/Mac_Storage/pdf2txt/pdf2txt
그것을 가리키는 심볼릭 링크가 있습니까 .
?
실행해서 ls -l /Volumes/Mac_Storage/pdf2txt
확인해 보세요.
다음과 같은 줄이 표시되는 경우:
lrwxrwxrwx 1 madmiddle madmiddle 1 Feb 12 12:34 pdf2txt -> .
...그러니까 그렇죠.
이러한 링크를 만드는 순서는 ln -s . pdf2txt
오타로 인해 우연히 발생할 수 있다는 것입니다.
답변3
나는 정말 지루했고 내 MBP runnin mojave의 cp 매뉴얼 페이지에서 다음을 발견했습니다.
호환성 cp 유틸리티의 과거 버전에는 -r 옵션이 있었습니다. 이 구현은 이 옵션을 지원하지만 특수 파일, 기호 링크 또는 FIFO를 올바르게 복사하지 않으므로 사용하지 않는 것이 좋습니다.
예, macOS에서는 cp -r이 제대로 작동하지 않습니다.