また使う機会がありそうなのでメモ。
このような隠しファイルがあるフォルダ a があります。
1 2 3 4 5 6 | $ ls -al a total 0 drwxr-xr-x 4 ktykwsk staff 128 3 9 13:20 . drwxr-xr-x 3 ktykwsk staff 96 3 9 13:14 .. -rwxrwxrwx 1 ktykwsk staff 0 3 9 13:15 .hidden -rwxrwxrwx 1 ktykwsk staff 0 3 9 13:20 show |
このフォルダを複製してフォルダ b を作ります。
1 2 3 4 5 6 7 8 9 10 11 | $ cp -r a b $ ls -l total 0 drwxr-xr-x 4 ktykwsk staff 128 3 9 13:20 a drwxr-xr-x 4 ktykwsk staff 128 3 9 13:24 b $ ls -al b total 0 drwxr-xr-x 4 ktykwsk staff 128 3 9 13:29 . drwxr-xr-x 4 ktykwsk staff 128 3 9 13:14 .. -rwxr-xr-x 1 ktykwsk staff 0 3 9 13:29 .hidden -rwxr-xr-x 1 ktykwsk staff 0 3 9 13:29 show |
ファイル.hidden と show のパーミッションが644になってしまいました。パーミッションを維持する為に -a オプションでコピーしましょう。
1 2 3 4 5 6 7 | $ cp -a a c $ ls -al c total 0 drwxr-xr-x 4 ktykwsk staff 128 3 9 13:35 . drwxr-xr-x 5 ktykwsk staff 160 3 9 13:14 .. -rwxrwxrwx 1 ktykwsk staff 0 3 9 13:15 .hidden -rwxrwxrwx 1 ktykwsk staff 0 3 9 13:20 show |
次にフォルダ d を作成し、その中にaの内容を複製してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $ mkdir d $ ls -al total 0 drwxr-xr-x 6 ktykwsk staff 192 3 9 13:14 . drwx------@ 9 ktykwsk staff 288 3 9 13:14 .. drwxr-xr-x 4 ktykwsk staff 128 3 9 13:20 a drwxr-xr-x 4 ktykwsk staff 128 3 9 13:29 b drwxr-xr-x 4 ktykwsk staff 128 3 9 13:35 c drwxr-xr-x 3 ktykwsk staff 96 3 9 13:36 d $ cp -a a/* d/ $ ls -al d total 0 drwxr-xr-x 3 ktykwsk staff 96 3 9 13:36 . drwxr-xr-x 6 ktykwsk staff 192 3 9 13:14 .. -rwxrwxrwx 1 ktykwsk staff 0 3 9 13:20 show |
“.” が先頭に付いた隠しファイルがコピーされていませんね。
ファイルのパーミッションを維持しつつ隠しファイルをコピーする場合、以下のようにコピー元ファイルを指定します。
1 | $ cp -a <コピー元ディレクトリパス>/. <コピー先ディレクトリパス> |
コピー元ディレクトリのパスの後ろに “/.” と付ける点がポイントです。
フォルダeを作成し、上記のコマンドで a フォルダの内容を複製します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ mkdir e $ ls -al total 0 drwxr-xr-x 7 ktykwsk staff 224 3 9 13:14 . drwx------@ 9 ktykwsk staff 288 3 9 13:14 .. drwxr-xr-x 4 ktykwsk staff 128 3 9 13:20 a drwxr-xr-x 4 ktykwsk staff 128 3 9 13:29 b drwxr-xr-x 4 ktykwsk staff 128 3 9 13:35 c drwxr-xr-x 3 ktykwsk staff 96 3 9 13:36 d drwxr-xr-x 2 ktykwsk staff 64 3 9 13:41 e $ cp -a a/. e/ $ ls -al e/ total 0 drwxr-xr-x 4 ktykwsk staff 128 3 9 13:20 . drwxr-xr-x 7 ktykwsk staff 224 3 9 13:14 .. -rwxrwxrwx 1 ktykwsk staff 0 3 9 13:15 .hidden -rwxrwxrwx 1 ktykwsk staff 0 3 9 13:20 show |
パーミッションを維持しつつ、隠しファイルをコピー出来ています。
宮崎県在住。
プログラムを書いて暮らしています。趣味はルアーフィッシング、ギター。