solaris 2.6
初心者です。
#cp -rp xxx ./
でコピー中に(恐らく)このファイルタイプの所で止まってしまいます。
丸ごとコピーしたいものが、dir階層が深くて広いので、困っています。
どなたか、良きアドバイスをお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

コピーしたいという目的は達成されたようなので、パイプについてひとつ。


パイプというのは、UNIX内の二つのプロセス間でデータを送れる通信路のことです。
基本的にはパイプごとにメモリを用意して、
プロセスの一つがそこにデータを書き込んだら、
別のプロセスが読み出すときに書き込んだ順に読めるようになっています。
プロセス間にパイプを一旦作ってしまうと、
読み書きはファイルの読み書きとまったく同じにできますので、
シェルが "|" を解釈してパイプを作ったあと二つのコマンドを起動すると、
標準出力に書いたものが、別のコマンドの標準入力から読めるというわけです。
で、名前付きパイプというのは、
誰も接続していないパイプがあらかじめ作られていて、
ファイルシステム中にあたかもファイルのように名前をつけて置いてあるものです。
あるプロセスがそのファイルを書き込みでオープンし、
別のプロセスがそのファイルを読み出しでオープンすれば、
シェルがパイプを用意しなくても無関係のプロセスどうしで通信できることになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
とてもわかりやすいご説明でした。
このファイルが、file コマンドでFIFOと表示されたのもなんとなく理解できました。

お礼日時:-0001/11/30 00:00

パイプと言うの |(縦棒、¥の上にあるやつ)です。


通常、以下のように使いますよね。

#ls -la /hogehoge | more

コマンドの入力と出力を、つなげるものです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ただ、コマンドをつなげるパイプ記号と、ファイルタイプの名前付きパイプにはどんな関係があるのかわかりません。
これらに共通したパイプという言葉の概念だけでも知りたいので引き続き勉強したいと思います。

お礼日時:-0001/11/30 00:00

止まる原因が、よくわかりませんが、


(ちなみに、cp -rpv で、コピーの進行状況を見れます)

別の、所有者・権限・階層丸ごとコピーの方法を。
JF文書のTipsの中にあったやつですが、

(cd /source && tar cf - . ) | (cd /dest && tar xvfp -)

で、/sourceから/distへ丸ごとコピーできます。
初心者ということなので、別の安全な場所で
実験してから、やってみた方がいいと思います(^^;
私は、この件に関して、責任は一切負いません・・。(笑)

参考URL:http://www.linux.or.jp/JF/JFdocs/Tips-HOWTO.txt
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
cpのオンラインマニュアルに
「-R パイプが読まれるのではなく複写される、という点を除いて-rと同じです。」
という記述を見つけ、
cp -R -p
で実行したところ、うまくいきました。
(パイプが何者かは、わからずじまいです)
手元の入門書3冊より、オンラインマニュアルをあたる方が得策だということがわかりました。
今後はもう少し調べてから質問しますのでよろしくお願いします。

お礼日時:-0001/11/30 00:00

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qファイルタイプの意味を教えてください

testのマニュアルを見ていたら、見たことのないファイル形式がいっぱい出てきてびっくりしました。
通常のファイル、ディレクトリ、シンボリックリンクの3種類は知っていたのですが、他は全部知りませんでした。それぞれどういうファイルなのか教えてください。
次のファイルの意味を教えてください。
ブロックスペシャルファイル(B)
キャラクタスペシャルファイル(C)
名前付きパイプ(P)
ソケット(S)

あと、最後に-t[fd]というオプションがあったのですが、この-tもファイルの形式を評価するオプションなのでしょうか。

詳しい方、ご返答お願いします。

Aベストアンサー

間違いがあったら遠慮無く訂正してください。

>ブロックスペシャルファイル(B)
>キャラクタスペシャルファイル(C)

UNIXにおいて入出力装置も含めて全てファイルとして扱っており、装置のインタフェース用の特殊なファイルがスペシャルファイルと言います。

装置特性としてブロック単位でアクセスするような装置がブロック型デバイス、それ以外の装置のキャラクタ単位でアクセスするような装置をキャラクタ型デバイス(raw deviceとも言う)と言いい、それぞれのデバイスのインタフェースがブロック型スペシャルファイル、キャラクタ型スペシャルファイルになります。

入出力の違いですが、ブロック型スペシャルファイルを通してのアクセスはバッファリングされ、キャラクタ型スペシャルファイルを通してのアクセスはバッファリングされません。


>名前付きパイプ(P)

UNIX系OSにおいてプログラム間でデータを受け渡すための機能としてパイプというものがあります。
例が悪いかもしれませんが、あるディレクトリ配下にファイル名にpipeを含むファイルを探す場合、例えば

# find . -type f -print | grep "pipe"

のように実行した場合、findコマンドの出力結果をgrepコマンドが受け取るために"|"を指定すると思いますが、これがパイプ(名前なしパイプ)です。

プロセス間通信(複数のプロセスでデータをやりとりする仕組み)で使用するためにパイプが拡張されたものが名前付きパイプです。
名前付きパイプを用いることで普通にファイルに書き込んだり読み込んだりするのと同じ感覚で利用出来ます。
名前付きパイプの作成はライブラリ関数とコマンドから作成出来ます。
コマンドで作成する場合は、mkfifoコマンドを使用します。


>ソケット(S)

これもプロセス間通信の一手法で、TCP/IPで通信する際にはこのソケットが使用されます。
このソケットにも2種類ありまして、TCP/IPで他ホストと接続するためのインターネットドメインソケットと同一マシン上で接続ためのUNIXドメインソケットというものがあります。
このUNIXドメインソケットは特殊なファイルを作成して通信を行います。
testコマンドで言うソケットはUNIXドメインソケットで使用するファイルの方だと思います。


>-t[fd]

UNIX系OSでは、ファイルをオープンすると必ず識別するための番号が付与されます。
複数のファイルをオープンしていてもこの番号を使用するれば意図したファイルに対して入出力を行える事が出来ます。
この識別するための番号をファイルディスクリプタ(fd)す。
プロセスが起動するとファイルディスクリプタの0~1には決まったものが割り付けられています(プログラム内で変更は可能)。
それは、0が標準入力、1が標準出力、2が標準エラー出力です。
指定したファイルディスクリプタがオープンされているか、つまりファイルに割り当たっているかを調べるものだと思います。

間違いがあったら遠慮無く訂正してください。

>ブロックスペシャルファイル(B)
>キャラクタスペシャルファイル(C)

UNIXにおいて入出力装置も含めて全てファイルとして扱っており、装置のインタフェース用の特殊なファイルがスペシャルファイルと言います。

装置特性としてブロック単位でアクセスするような装置がブロック型デバイス、それ以外の装置のキャラクタ単位でアクセスするような装置をキャラクタ型デバイス(raw deviceとも言う)と言いい、それぞれのデバイスのインタフェースがブロック型ス...続きを読む

Qコンソールで文字化け

Solaris8

Solaris初心者なのですが、日本語環境にしたく、「.profile」にて

LANG=ja;
export LANG

と設定したの表示も入力も文字化けになり困っています。
過去ログを見てもいい答えが見つかりませんでした。

どうかご存知の方がいましたらご教授願います。

Aベストアンサー

質問者さんの言う「コンソール」がどの環境を指しているかによりますが、

(1)一般的にいうところの「コンソール」には日本語表示できません。LANG=Cで表示してください。

(2)TeraTerm等のtelnetリモート端末のことであれば、LANGで指定する文字コードと端末側で表示する文字コードを合わせてください。SJISならLANG=ja_JP.PCK、EUCならLANG=ja(もしくはja_JP.eucJP)

(3)日本語コードがインストールされているか、「locale -a」コマンドで確認してください。表示されたコードが使用できる文字コードです。表示したい文字コードがなかったら追加インストールします。

#どの画面にどのように表示したいのか補足していただければ、適切な回答ができると思います。

Qパーミッション?について教えてください

ls -l で表示される内容で解からない所があるのですが
先頭が l と d と s は解かるのですが(調べられました)
crw-rw-rw-
brwxr-xr-x
のように c と b が解かりません。
これは何を意味するのでしょう?
また他にもあるのでしょうか?
ご存知の方教えて頂けないでしょうか?
よろしくお願いします。

Aベストアンサー

cはキャラクタ型特殊ファイルで、ディスプレーやキーボードなどバイト単位でやり取りが行われる入出力装置をファイルとして扱うもの。
bはブロック型特殊ファイルで、ハードディスク・フロッピー・CD・DVD等一定のまとまったサイズ単位でやり取りが行われる入出力装置をファイルとして扱うもの。
他にはf(通常のファイル)、d(ディレクトリ:Windowsでいうフォルダ)、p(名前付きパイプ:ある処理の結果を次の処理に渡すときにその途中のデータをファイルとして扱うもの)、l(シンボリックリンク:Windowsでいうショートカットの働きをするもの)など。

QFTPコマンドでディレクトリごとファイル移動できるコマンドはありますか?

タイトルどおりなのですが、FTPでファイルを転送する際に、サブフォルダを含むディレクトリごとファイル転送するコマンドはありますでしょうか。
ディレクトリの中にあるすべてのファイルを移動したいのですが、サブフォルダがたくさんあるので、わざわざディレクトリの場所へ移動してmputを繰り返すのはめんどうで仕方ありません。
よろしくお願いします。

Aベストアンサー

ご使用になるOS環境が書いてないのですが、Linux,BSD等ならncftpで、get -R dir。
Windowsならffftpを使えば良いと思います。


人気Q&Aランキング

おすすめ情報