• ベストアンサー
  • 困ってます

scpコマンドの-pオプションについて

scpコマンドの-pオプションについて scpコマンド、(-p)オプションを付加しても ファイルのオーナ、グループが引き継がれません。 仕様なのでしょうか? ディストリビューションはRed Hat Enterprise Linux ESです。 よろしくお願いします。 ●コピー元 [root@moto tmp]# touch scp-test [root@moto tmp]# chown dbmgr:dba scp-test [root@moto tmp]# ls -l scp-test -rw-r--r-- 1 dbmgr dba 0 2月 16 15:01 scp-test [root@moto tmp]# chmod 777 scp-test [root@moto tmp]# ls -l scp-test -rwxrwxrwx 1 dbmgr dba 0 2月 16 15:01 scp-test [root@moto tmp]# [root@moto tmp]# scp -p scp-test saki:/tmp/ scp-test 100% 0 0.0KB/s --:-- ETA [root@moto tmp]# ●コピー先 [root@saki tmp]# ls -l scp-test -rwxrwxrwx 1 root root 0 2月 16 2005 scp-test [root@saki tmp]#

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数6811
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • easy7
  • ベストアンサー率78% (25/32)

man scpを実行すると-pオプションは Preserves modification times, access times, and modes from the original file. と書いてあります。 変更時間や、アクセス時間、パーミッションは引き継がれるようですが、所有者やグループの情報は引き継がれないようですね。 まぁ、コピー元にいるユーザがコピー先にもいるとは限りませんから、そういう仕様になってると考えるべきでしょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

なるほど、納得いきました。 ありがとうございます。

関連するQ&A

  • scpコマンドで、「追記」のオプションはありますか?

    scpコマンドで、「追記」のオプションはありますか? 会社で、scp(scp2)のコマンドを組み立てている、Cシェルの改修をすることになりました。 私は"scp"というものを知ったのがここ数日、Cシェルもかろうじて読めるくらいなのですが、そのシェルを作った方がもう退職されてしまったため、私が改修することになりました… 概要は、SSHサーバ上にあるファイルを別サーバへコピーしているのですが、それを「追記」できるようにしたいのです。 いくつかサイトを見てみたのですが、それらしきオプションがある、というのは見つけられませんでした。 もう、手も出せず困っています。。。 どなたか、詳しい方からのご教示をお待ちしております。

  • cpioコマンド

    cpioコマンドのオプションについて教えて下さい。 カレントディレクトリ以下を、/tmp/Backupとして保存。 ls | cpio -o > /tmp/Backup 作成したアーカイブに更にファイルを追加したい場合は どのようにすればよいのでしょうか? -A オプションを使用するようなのですが、どうしてもうまくいきません。 よろしくお願いします。

  • PHPからシェルコマンドの実行

    PHPからシェルコマンドを実行したいのですが SSHやSCPコマンドが使えません。 phpからlsなどは問題なく実行できます。 具体的には以下のように書いています。 `scp test.log user@host:/home/hoge`; shell_exec()を使っても実行されませんでした。 環境は以下のとおりです。 PHP 5.4.17 CentOS 5.8 sshやscpコマンドをphpから実行するには何か特別な方法が必要なのでしょうか。 ご存知の方、教えてください。

    • ベストアンサー
    • PHP
  • Cygwinのlsコマンドについて

    Cygwinの場合、以下のオプションでlsコマンドを実行すると $ ls --full-time -rwxr-xr-x 1 aaaa なし 139 2006-08-23 15:01:34.203125000 +0900 ls.sh と表示されます。 Linux(redhat)上で同様のコマンドを実行すると、 $ ls --full-time -rwxr-x--- 6 root root 4096 Wed Aug 09 16:59:03 2005 ls.sh と表示されます。 タイムスタンプの表示形式が異なっていますが、 Cygwin上で、Linuxのような表記をしたいのですが、 可能でしょうか。ご教授お願い致します。

  • Linuxのtarコマンドについて

    Linuxのtarコマンドについてわかる方がいれば教えてほしいです。 (tarコマンドというよりはLinuxの仕様かもしれません) Linuxで以下①パターンと②パターンでコマンドを実行したときに 指定の仕方でtarファイルの作成されるディレクトリが違うのですが なぜでしょうか。 Linux初心者なので詳しく教えていただけると助かります。 共通(前準備 (#はプロンプトです)) # DIR=/tmp/hoge/2021 # ls -l ${DIR} ~ test1.txt ~ test2.txt ~ test3.txt # cd ${DIR} ①パターン # tar -cvf ${DIR}.tar ./* (アスタリスクです) # ls -l /tmp/hoge ~ 2021.tar ⇒/tmp/hoge配下にtarができる ②パターン # tar -cvf 2021.tar ./* (アスタリスクです) # ls -l /tmp/hoge ~ 2021.tar ⇒/tmp/hoge/2021配下にtarができる

  • Solaris10でのreadコマンドについて

    Solaris10を使用しています。 コマンドの実行結果をそのまま変数として使用するために 以下のスクリプトを実行したところ・・ -------------------- #!/bin/sh read a b c <<EOF `ls -l aaa.log` EOF echo $a echo $b echo $c -------------------- 「ls -l aaa.log」の結果は、-rw-r--r-- 1 root root 211 1月 13 11:58 aa.log となるので $a=-rw-r--r-- $b=1 $c=root という結果を期待していたのですが、「/tmp/sh*** cannot open!」とエラーとなってしまいます。***は任意の数字です。 /tmpには上記で cannot open! となった「sh***」よりひとつ若い番号のファイルが作成され、 中は「ls -l aaa.log」の結果が記載されていました。 CentOS5.2、Cygwinでは期待した結果が得られたのですが、SolarisではNGでした。 何かSolaris特有の問題でもあるのでしょうか?ご教示願います。

  • moveコマンドで別のドライブにフォルダを移動

    moveコマンドで別のドライブにフォルダを移動 コマンドプロンプトでmoveコマンドを使って フォルダを別のドライブに移動させたいのですが、 「アクセスが拒否されました」と出て移動が できません。 同じドライブ内だと問題なく移動できます。 また、別のドライブでもファイルなら問題なく移動できます。 フォルダは別のドライブに移動できないのでしょうか? 試してみたことは以下の通りです。 同じドライブでフォルダを移動 → ○ 同じドライブでファイルを移動 → ○ 別のドライブにフォルダを移動 → × 別のドライブにファイルを移動 → ○ コマンドの例 ■これだとうまくいかない  (別のドライブにフォルダを移動) set moto="E:\test1" set saki="C:\test2" move %moto% %saki% ■これだとうまくいく  (別のドライブにファイルを移動) set moto="E:\test1.txt" set saki="C:\test2" move %moto% %saki% よろしくお願いします。

  • linuxコマンド/複数のディレクトリに対して一括でファイルをコピー

    linuxコマンドについて質問です。 ある特定の1つのファイルを、複数のディレクトリに対して一括コピーはできなのでしょうか? root La Lb Lc -test.txt ↓実行後 root La-test.txt Lb-test.txt Lc-test.txt -test.txt root以下にあるファイル test.txt(root/test.txt)を root以下にあるディレクトリa,b,cにコピーしたいのです。 よろしくお願いいたします

  • 自動パスワード入力でscpするスクリプトでエラー「Unterminated quoted string」

    Win2kのCygwinで下記のスクリプトを試してみました。 (ローカルのファイルをscpで自動転送) $ uname -a CYGWIN_NT-5.0 upsil 1.5.11(0.116/4/2) 2004-09-04 23:17 i686 unknown unknown Cygwin $ cat ./test.sh #!/bin/sh HOST=192.168.1.105 # scp するマシン名を設定 UNAME=user01 # ログイン名を設定 PASSWD=xxxxxxxx # パスワ-ドを設定 TARGET=/cygdrive/c/cygwin/home/root/hoge /usr/bin/zip -r $TARGET.lzh $TARGET expect -c " # expect コマンドを実行 set timeout 20 spawn scp -P 60001 $TARGET.lzh $UNAME@$HOST:/home/fat32/ # expect コマンドの管理下でscpを実行する expect login:\ ; send \"$UNAME\r\" # login: が出たらログイン名を打ち込む expect sword:\ ; send \"$PASSWD\r\" # password: が出たらパスワ-ドを打ち込む #expect \"$\" ; send \"ls\r\" # $ が出たら ls を打ち込む #expect \"$\" ; send \"exit\r\" # $ が出たら exit を打ち込む $ which expect /usr/bin/expect $ which zip /usr/bin/zip $ ./test.sh と実行すると : 9: Syntax error: Unterminated quoted string となり、終ってしまいました。 「expect -c " # expect コマンドを実行」 が問題みたいなのですが何がまずかったのでしょうか?

  • ブラウザ上のシェルスクリプトの質問です

    今回、ファイルを検索し、motoフォルダ から sakiフォルダ へ ファイルをコピーするシェルスクリプトを書きました。 シェルスクリプト自体は問題なく動作し、良かったのですが、欲が出てweb上から実行したいと思い色々調べ Apache 上で sh を許可し、実行出来るようにしました。 どのファイルが移動出来たのを確認するのに、ブラウザ上で表示出来るようにしたのですが ファイルが日本語名だと 表示がおかしくなります。 コマンドだと cp -v /moto/A.xxx /saki/B.xxx です これで サーバ内で実行すると、問題なく /moto/世界.xxx' -> `/saki/世界.xxx とでますが ブラウザ上だと /moto/\344\270\226\347\225\214.xxx' -> `/saki/\344\270\226\347\225\214.xxx' になります。 ”世界”という日本語(漢字)が \344\270\226\347\225\214 に化けていると思うのですが 化けてるとの表現が合ってるのか分からないのですが、ブラウザ上で /moto/世界.xxx' -> `/saki/世界.xxx な表記に出来るものなのでしょうか。 サーバは CentOS5.8 文字コードは UTF-8 です。 宜しくお願いします。