フォルダ全体をコピーするには、次のコードがあります。
#!/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を使用しています。
これらのシンボリックリンクはmacOScp
のループ検出を中断します。 (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が正しく機能しません。