また使う機会がありそうなのでメモ。
このような隠しファイルがあるフォルダ a があります。
$ 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 を作ります。
$ 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 オプションでコピーしましょう。
$ 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の内容を複製してみます。
$ 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
“.” が先頭に付いた隠しファイルがコピーされていませんね。
ファイルのパーミッションを維持しつつ隠しファイルをコピーする場合、以下のようにコピー元ファイルを指定します。
$ cp -a <コピー元ディレクトリパス>/. <コピー先ディレクトリパス>
コピー元ディレクトリのパスの後ろに “/.” と付ける点がポイントです。
フォルダeを作成し、上記のコマンドで a フォルダの内容を複製します。
$ 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
パーミッションを維持しつつ、隠しファイルをコピー出来ています。
宮崎県在住。
プログラムを書いて暮らしています。趣味はルアーフィッシング、ギター。