お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-02-17 23:55:11

T-bon
メンバ
登録日: 2008-01-24

scdとsrファイル

お世話になります。又、教えて頂きたいんですが・・・。

Xubuntu 8.10をウィンドウズXPとのデュアルブートで使用しています。

つい最近気付いたのですが、ファイルシステム内にscd0~16とsr1~16というファイル(?)が知らない間に出来ていました。この間までこちらのフォーラムでk3bについて色々と助言を頂いていたので、その時に出来たものだと思われますが、これは必要なファイルなんでしょうか?1つならともかく16個も出来ているので、出来れば削除したいのですが。ただ今の状態では削除できないようになっています。

一応自分でも調べてみましたが、よくわからないので質問させて頂きます。よろしくお願い致します。

オフライン

 

#2 2009-02-18 00:12:25

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: scdとsrファイル

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2009-02-18 00:14:25)

オフライン

 

#3 2009-02-18 01:08:37

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

あっ、すみません。せっかく書いたので送信しときます。
助けが来る前にもう少し情報を、scr,srはcd/dvd のデバイスドライバのはずですが、ファイルの情報を見るために端末で

$ ls -al /

scd0~16とsr1〜16の情報を貼り付けて見てください。
通常は/dev なのですが、ファイルシステム直下に存在しているのでしょうか?

SCSIデバイスの数だけ有ると思うのですが異常です。

$ lsscsi

で確認してみて下さい。
おそらくK3bがその都度デバイスを新規に認識して生成しているのかも。改善前の名残りなら良いのですが。

削除に関してはおそらくルート権限で実行すれば問題ないと思いますが、一応削除ではなく移動させて試してから削除の方が良いかも。

まずファイル情報とデバイス情報を張り付けてもらって確認してからですね。
もしかしたら他の不具合を誰かが発見されるかも。

オフライン

 

#4 2009-02-18 01:18:36

T-bon
メンバ
登録日: 2008-01-24

Re: scdとsrファイル

>kiyoshiさん

早速ありがとうございます。

kiyoshiさん による投稿:

どこのディレクトリですか?
/dev/
の中ですか?デバイスファイルのような気が・・・。root権限なら消せるかもしれませんが、消さない方が良いと思います。
間違っているかもしれませんが。

では無いような気が・・・。devフォルダの中ではないので(間違ってます?)。プロパティによると、種類はブロックデバイス、サイズ0バイト、容量28Gボリュームとなっております。16個全て残しておいた方が良いでしょうか?

オフライン

 

#5 2009-02-18 01:38:07

T-bon
メンバ
登録日: 2008-01-24

Re: scdとsrファイル

>hir0さん、こんばんは。マタマタお世話になります。

hir0さん による投稿:

あっ、すみません。せっかく書いたので送信しときます。
助けが来る前にもう少し情報を、scr,srはcd/dvd のデバイスドライバのはずですが、ファイルの情報を見るために端末で

$ ls -al /

scd0~16とsr1〜16の情報を貼り付けて見てください。
通常は/dev なのですが、ファイルシステム直下に存在しているのでしょうか?

SCSIデバイスの数だけ有ると思うのですが異常です。

ファイルシステム直下です。情報は以下の通りです。
brw-rw----   1 root cdrom 11,  0 2009-02-04 16:44 scd0
brw-rw----   1 root cdrom 11,  1 2009-02-04 16:44 scd1
brw-rw----   1 root cdrom 11, 10 2009-02-04 16:44 scd10
brw-rw----   1 root cdrom 11, 11 2009-02-04 16:44 scd11
brw-rw----   1 root cdrom 11, 12 2009-02-04 16:44 scd12
brw-rw----   1 root cdrom 11, 13 2009-02-04 16:44 scd13
brw-rw----   1 root cdrom 11, 14 2009-02-04 16:44 scd14
brw-rw----   1 root cdrom 11, 15 2009-02-04 16:44 scd15
brw-rw----   1 root cdrom 11, 16 2009-02-04 16:44 scd16
brw-rw----   1 root cdrom 11,  2 2009-02-04 16:44 scd2
brw-rw----   1 root cdrom 11,  3 2009-02-04 16:44 scd3
brw-rw----   1 root cdrom 11,  4 2009-02-04 16:44 scd4
brw-rw----   1 root cdrom 11,  5 2009-02-04 16:44 scd5
brw-rw----   1 root cdrom 11,  6 2009-02-04 16:44 scd6
brw-rw----   1 root cdrom 11,  7 2009-02-04 16:44 scd7
brw-rw----   1 root cdrom 11,  8 2009-02-04 16:44 scd8
brw-rw----   1 root cdrom 11,  9 2009-02-04 16:44 scd9
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr0 -> scd0
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr1 -> scd1
lrwxrwxrwx   1 root root       5 2009-02-04 16:44 sr10 -> scd10
lrwxrwxrwx   1 root root       5 2009-02-04 16:44 sr11 -> scd11
lrwxrwxrwx   1 root root       5 2009-02-04 16:44 sr12 -> scd12
lrwxrwxrwx   1 root root       5 2009-02-04 16:44 sr13 -> scd13
lrwxrwxrwx   1 root root       5 2009-02-04 16:44 sr14 -> scd14
lrwxrwxrwx   1 root root       5 2009-02-04 16:44 sr15 -> scd15
lrwxrwxrwx   1 root root       5 2009-02-04 16:44 sr16 -> scd16
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr2 -> scd2
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr3 -> scd3
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr4 -> scd4
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr5 -> scd5
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr6 -> scd6
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr7 -> scd7
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr8 -> scd8
lrwxrwxrwx   1 root root       4 2009-02-04 16:44 sr9 -> scd9

$ lsscsi

で確認してみて下さい。
おそらくK3bがその都度デバイスを新規に認識して生成しているのかも。改善前の名残りなら良いのですが。

えっと、lsscsiがインストールされていなかったので、インストールしました。以下、結果です。
[0:0:0:0]    disk    ATA      ST340015A        3.01  -       
[1:0:0:0]    cd/dvd  HL-DT-ST DVDRAM GMA-4020B A108  -       
[2:0:0:0]    disk    I-O DATA HDC-U            1.09  -

削除に関してはおそらくルート権限で実行すれば問題ないと思いますが、一応削除ではなく移動させて試してから削除の方が良いかも。

まずファイル情報とデバイス情報を張り付けてもらって確認してからですね。
もしかしたら他の不具合を誰かが発見されるかも。

了解しました。確認をよろしくお願い致します。

オフライン

 

#6 2009-02-18 02:35:48

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

私の見解ではscd0,scd1,sr0,sr1 を残し、後はいらないと思いますが/dev にも同じファイルは無いでしょうか?
もし有れば/以下のscr と sr は全て不要と言う事になります。(K3bが原因で修復が完了している場合)
確認してみて下さい。

ホームディレクトリの移動。
$ cd /home/***              ***はユーザーネーム
(~$ だけの表示でOK)

ファイル移動用のフォルダsrcを作ります。
$ mkdir scr

scrフォルダが出来ているか確認。
$ ls

移動
$ sudo mv /scd2 scd3 scd4 scd5 scd6 scd7 scd8 scd9 scd10 scd11 scd12 scd13 scd14 scd15 scd16 /home/***/scr
$ sudo mv /sr2 sr3 sr4 sr5 sr6 sr7 sr8 sr9 sr10 sr11 sr12 sr13 sr14 sr15 sr16 /home/***/scr

それで動作確認して頂いて、大丈夫ならscrフォルダごと削除して下さい。/home/ 以下の階層ならユーザー権限で大丈夫なのでマウス操作でもOKです。
ファイルを元に戻すときは
$ sudo mv /home/***/scr scd2.....scd16 /

ディスクドライブにアクセスがあるかも知れませんが、止まらない様なら一度CDドライブをオープンして下さい。

(スミマセン。移動のコマンドが何故2つに分かれているのかとか一つずつ指定してるのかとかは気にしないでください。)

---------------------------------------------------------------------------
I-O DATA HDC-Uは外付けHDDだったんですね、
scd1とsr1も要らないかも。確認の方法と判断はお任せします、実際にK3bを使用してみてたり映像(DVD)を再生させたりです。 このまま他のコメントを待つのも、詳しい方が登場されるかも。

最後の編集者: hir0 (2009-02-18 02:47:45)

オフライン

 

#7 2009-02-18 21:17:02

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

今日あらためて読みか替えしてみて /にある scd* と sr* は全て削除しても大丈夫です。

前回のエラーで
1、K3bが実行時 /dev/にデバイスファイルを読みにいく。
2、無ければデバイスファイルを生成してアプリケーションを実行する。
(ここで/dev/ では無くなぜか / にデバイスを作るため、CDドライブにアクセス出来ないと言う内容のエラーが出る)

1、2、を繰り返して / にデバイスを生成するが同じ名前が有るので枝番を振る。 /dev/を読みにいく、無いのでエラー。
また / に作る。

avidyaさんが見事に見抜き /dev/ にMAKEDEVでsrを生成したので、/ に作られているファイルは利用されることは有りません。

ここで問題が一つと疑問が一つ。
問題点はソフトウェアが間違ったディレクトリにデバイスドライバを生成するのを修正しなければ、ドライブを増設した時などは手動で/dev/MAKEDEV sr を実行しなければいけないかも。

疑問点
私の環境とT-bomさんが貼り付けて頂いた情報、共にscd と sr がセットになっておりscd が本体、sr が scd のリンクになっていますが、「/dev/MAKEDEV sr 」で sr を生成して無事ソフトの実行がされているのでしょうか?
それとも  /dev/sr で無事に実行された最 / に生成された様に /dev/ にも scr0 sr0 と出来ているのでしょうか?

興味本位ですが、もしよろしければ
$ ls -al /dev
で sr と、もし有れば scd scd* sr* の所が見てみたいです。

オフライン

 

#8 2009-02-18 22:22:14

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: scdとsrファイル

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2009-02-21 04:21:25)

オフライン

 

#9 2009-02-19 00:55:03

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

T-bonさんへ、#2のkiyoshiさんのコメントと別物なので区別して下さい。
私は誰のサポートしていませんし、#8の内容自体べつものです。

おそらく 「 * 」マークを引用したことを指して全く別の記号に使われる意味と混ぜ合わせた事を言っているだけだと思いますが、語尾は「しれませんね」なので後は自己判断でお願いします。

kioshiさんへ
フォーラムを使ったメールは止めてください。

------------------------------------------------------------


追加です。
kiyoshiさんへ
ネット上で言ってることとメールで言っている事が逆なら話もしますが、現状ではあなたと個別に話をする意義が見つかりません。
返事、無用です。 メールも無用です。

フォーラム上で仲良くやりましょう。

最後の編集者: hir0 (2009-02-19 01:07:33)

オフライン

 

#10 2009-02-19 01:38:37

T-bon
メンバ
登録日: 2008-01-24

Re: scdとsrファイル

hir0さん、ありがとうございます。

hir0さん による投稿:

今日あらためて読みか替えしてみて /にある scd* と sr* は全て削除しても大丈夫です。

前回のエラーで
1、K3bが実行時 /dev/にデバイスファイルを読みにいく。
2、無ければデバイスファイルを生成してアプリケーションを実行する。
(ここで/dev/ では無くなぜか / にデバイスを作るため、CDドライブにアクセス出来ないと言う内容のエラーが出る)

1、2、を繰り返して / にデバイスを生成するが同じ名前が有るので枝番を振る。 /dev/を読みにいく、無いのでエラー。
また / に作る。

avidyaさんが見事に見抜き /dev/ にMAKEDEVでsrを生成したので、/ に作られているファイルは利用されることは有りません。

そうでしたか〜。良かったです。

ここで問題が一つと疑問が一つ。
問題点はソフトウェアが間違ったディレクトリにデバイスドライバを生成するのを修正しなければ、ドライブを増設した時などは手動で/dev/MAKEDEV sr を実行しなければいけないかも。

疑問点
私の環境とT-bomさんが貼り付けて頂いた情報、共にscd と sr がセットになっておりscd が本体、sr が scd のリンクになっていますが、「/dev/MAKEDEV sr 」で sr を生成して無事ソフトの実行がされているのでしょうか?
それとも  /dev/sr で無事に実行された最 / に生成された様に /dev/ にも scr0 sr0 と出来ているのでしょうか?

あれ以来K3bを使ってないので、無事に実行されるかどうかわからないのですが、/dev/にもscd0とsr0がちゃんと出来ています。


興味本位ですが、もしよろしければ
$ ls -al /dev
で sr と、もし有れば scd scd* sr* の所が見てみたいです。

以下の状態です。凄く長く出たので、抜粋します。
lrwxrwxrwx   1 root   root           4 2009-02-18 23:04 cdrom -> scd0
lrwxrwxrwx   1 root   root           4 2009-02-18 23:04 cdrw -> scd0
lrwxrwxrwx   1 root   root           4 2009-02-18 23:04 dvd -> scd0
lrwxrwxrwx   1 root   root           4 2009-02-18 23:04 dvdrw -> scd0
brw-rw----+  1 root   cdrom    11,   0 2009-02-19 08:04 scd0
lrwxrwxrwx   1 root   root           4 2009-02-18 23:04 sr0 -> scd0

こんな感じでよろしいでしょうか?
後、#6で教えて頂いている移動等はしなくても、もう大丈夫でしょうか?もしくは一旦移動して、K3bの動作確認をしたほうが良いですか?一応音楽をDVDディスクにコピーされている音楽は聴くことはできています。

オフライン

 

#11 2009-02-19 13:56:29

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

やはり用心のためには移動してK3bの動作確認はしたほうが無難だと思いますが、この辺は個々の判断でお願いします。
/dev/ にちゃんとファイルが生成されてファイルの関係も大丈夫見たいです。
(コマンドが修復させたのかなぁ? ソフトが修復させたのかなぁ?)

[補足の情報です]
今回に限らず、コピペを行う場合にコマンドの例に ? * , [ { ] } が有る場合は説明の文をよく読んで注意深く実行したほうが予期せぬ事態を回避出来ます。
私も例文に間違え安い位置に ? * , [ { ] } を使うのは控えます。

#8で指摘頂いたように「*」をワイルドカードとして使用するのは「*」の意味を理解してからでないと確かに危険です。
(危険=意図しない結果)

気を付けて欲しいのが 「*」 をワイルドカードではなく 正規表現のメタ文字として扱われるケースがあります。
この場合の危険度は「意図しない結果」では無く、「予期出来ない事」になる可能性が特大です。
正規表現の場合、端末で警告と確認がでますので、よく理解したうえで yes、no を選んで下さい。

オフライン

 

#12 2009-02-20 00:22:22

T-bon
メンバ
登録日: 2008-01-24

Re: scdとsrファイル

hir0さん による投稿:

やはり用心のためには移動してK3bの動作確認はしたほうが無難だと思いますが、この辺は個々の判断でお願いします。
/dev/ にちゃんとファイルが生成されてファイルの関係も大丈夫見たいです。
(コマンドが修復させたのかなぁ? ソフトが修復させたのかなぁ?)

scd2は移動できたのですが、3以下がなぜか移動できません。
mv: missing destination file operand after `/scd3/home/***/scr'
詳しくは `mv --help' を実行して下さい.
という風に出ます。srの方はマウスで何とか移動できます。3以下のファイルが何かおかしいのでしょうか?
いつもお手数おかけして申し訳ありませんが、もう少しおつきあいくださいますでしょうか?よろしくお願いします。

オフライン

 

#13 2009-02-20 01:00:36

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

えっと、コマンドのミスです。_orz
申し訳ございません、#8に指摘が有ったのですが訂正を忘れていました。(私的な件が有り、つい全文をきちんと読んでいなかったです。)

全てを指定するとして(0〜16)
指摘通りに$ sudo mv /scd0 /scd3 /scd4... /scd16 /home/***/scr と / を入れていくか
ワイルドカードで
$ sudo mv /scd[0-16] /home/***/scr(***にはT-bonさんのホームディレクトリ名を)

取り急ぎお詫びと訂正を。

最後の編集者: hir0 (2009-02-20 01:19:14)

オフライン

 

#14 2009-02-20 02:28:51

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: scdとsrファイル

hir0 による投稿:

全てを指定するとして(0〜16)
指摘通りに$ sudo mv /scd0 /scd3 /scd4... /scd16 /home/***/scr と / を入れていくか
ワイルドカードで
$ sudo mv /scd[0-16] /home/***/scr(***にはT-bonさんのホームディレクトリ名を)

/scd[0-16]
は違ってますよ.
[0-16] = 0 or 1 or 6

tty は 0~63 まではありますから,
$ ls /dev/tty[0-16]
で確認して下さい

[2-579] = 2 or 3 or 4 or 5 or 7 or 9

最後の編集者: einundzwanzighundertsechs (2009-02-20 05:16:49)

オフライン

 

#15 2009-02-20 12:47:54

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

einundzwanzighundertsechsさん有難うございます。
一文字だけ認識すると言う事なんですね。

そうすると安全面から見て /scd*は危険ですが /scd?? も際どい結果になる可能性が有るのですが、2桁以上の数字を指定する方法は有るのでしょうか?
何か組み合わせでカバーするのでしょうか。
それとも @=0; for 0=16 0++; /scd@ のような事は出きるのでしょうか。
出来ましたらご指導よろしくお願いします。

今現在、私の中では2桁の数字を複数、明示的に一括で指定する方法が解りません。

オフライン

 

#16 2009-02-20 12:54:37

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

------------------------------------------------
こう言うのは邪道でしょうか。
/scd[0-9]
/scd1[0-6]
------------------------------------------------

T-bonさん立て続けに申し訳ないです、取り合えず訂正の訂正です。

hir0 による投稿:

    全てを指定するとして(0〜16)
    指摘通りに$ sudo mv /scd0 /scd3 /scd4... /scd16 /home/***/scr と / を入れていくか
    ワイルドカードで
    $ sudo mv /scd[0-16] /home/***/scr(***にはT-bonさんのホームディレクトリ名を)

最後の一行をを以下に訂正です。

$ sudo mv /scd[0-9] /home/***/scr(***にはT-bonさんのホームディレクトリ名を)
$ sudo mv /scd1[0-6] /home/***/scr(***にはT-bonさんのホームディレクトリ名を)

sr0~16も同様に、です。

最後の編集者: hir0 (2009-02-20 20:31:47)

オフライン

 

#17 2009-02-20 13:08:41

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: scdとsrファイル

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2009-02-20 13:17:45)

オフライン

 

#18 2009-02-20 13:18:45

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

あっ、有難う御座います。9が全角になってたとは、ガックシ。

また意味の解らない書き込みをした後、メールでは謝罪めいた貴方の心境を書くつもりですか?
返事無用、メール無用です。

フォーラム上で仲良くやりましょう。

オフライン

 

#19 2009-02-20 15:16:17

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: scdとsrファイル

T-bon さん,オフトピですいません.

シェルのワイルドカードは厳密には正規表現ではないですが,
正規表現 [ ] の原則的な意味は中に記述したどれか1文字,  [258] = 2 or 5 or 8
数字やアルファベットは - でその範囲を記述できる.            [a-d] = a or b or c or d
[ ] の中でこれらを併用できる.したがって                       [258a-d] = 2 or 5 or 8 or a or b or c or d

ついでに bash 限定(確か bash 3 以降)で,tty0~tty16 の ls -l をとるとして,

$ for((x = 0; x <= 16; ++ x)); do ls -l /dev/tty$x; done

2重括弧が味噌です.ただしワイルドカードと違って ls が17回起動されることに注意.

追記:
[0-16] が0,1,2,..,15,16 の連番になるのはダウンロードツールの記述法にあります.
linux では curl がそうです.

最後の編集者: einundzwanzighundertsechs (2009-02-20 15:57:42)

オフライン

 

#20 2009-02-20 15:58:47

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Re: scdとsrファイル

$ ls /dev/tty{0..16}
じゃだめでしょーか。

オフライン

 

#21 2009-02-20 16:16:04

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: scdとsrファイル

mizuno さん,ありがとうございます.勉強になります.
ファイルをコピーする順が問題になるときがあってその時に調べた for(()) をこれまで使っていました.

最後の編集者: einundzwanzighundertsechs (2009-02-20 16:36:40)

オフライン

 

#22 2009-02-20 20:50:51

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

einundzwanzighundertsechs様、mizuno様、有り難う御座います。
大変勉強になりました、より幅広く知識を身につけれるよう頑張ります。
(経験の方をフォーラムで補おうとしているのですが、いろんな意味で少し反省しています。)

T-bonさん、余計な操作で時間を費やさせてしまいすみませんでした。

オフライン

 

#23 2009-02-21 00:37:11

T-bon
メンバ
登録日: 2008-01-24

Re: scdとsrファイル

hir0さん、kiyoshiさん、einundzwanzighundertsechsさん、mizunoさん、ありがとうございます。

今日から留守をしますので、皆さんから教えて頂いたコマンドを直ぐに実行して、結果をお伝えすることができません。帰りましたら、又、報告させて頂きます。取り急ぎ、お礼まで。

hir0さん による投稿:

T-bonさん、余計な操作で時間を費やさせてしまいすみませんでした。

とんでもないです。こちらこそ大切なお時間を費やしていただき、申し訳なく思っています。又、よろしくお願い致します。

最後の編集者: T-bon (2009-02-21 00:58:26)

オフライン

 

#24 2009-02-21 01:33:44

hir0
メンバ
登録日: 2008-09-28

Re: scdとsrファイル

結果は同じですよ。#16の訂正した方法をよりスマートにした方法です。

私が途中でファイルの0〜16を指定する方法が解らなくなった時に本題からそれましたが別の方法を提示していただきました。


([注] ttyは触らないで下さい。あれはファイルがtty0~tty63まで有るので練習?確認用に便宜上使用したファイル名ですlsなら良いですけどmvはしないで下さい)


#16で訂正した方法          (「方法=ファイルの指定方法」)
$ sudo mv /scd[0-9] /home/***/scr
$ sudo mv /scd1[0-6] /home/***/scr

einundzwanzighundertsechsさんに教わった方法
$ sudo su
# for((x = 0; x <= 16; ++ x)); do mv /scd$x /home/***/scr; done

mizunoさんに教わった方法
$ sudo mv /scd{0..16} /home/***/scr

(***にはT-bonさんのホームディレクトリ名を)
結果は同じなので好みの方法を。

違いは私のは回りくどく低レベル、einundzwanzighundertsechsさんのは処理される順序がfor文のカウンター順なので違う用途で威力を発揮、mizunoさんの方法はシンプルで綺麗。

最後の編集者: hir0 (2009-02-21 01:39:26)

オフライン

 

#25 2009-02-21 15:51:42

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: scdとsrファイル

T-bon さんへ,杞憂だとは思いますが,for(()) を使う方法はあくまで参考のつもりでした.
タイプミスの恐れが一番少ない mizuno さんに教えていただいた正規表現を使うのが一番です.

for(()) は確かに威力があるので注意が必要です.
1. sudo は繰り返しの中に入れてもパスワードを聞かれるのは1回だけ
$ for((x = 0; x < 10; ++ x)); do sudo ls file$x; done
2. クリティカルなコマンドの前に echo を置いてこれから行われる動作を確認して,履歴編集で echo を消して使う
本番では rm, cp, mv 等には -i を付ける.
$ for((x = 0; x < 10; ++ x)); do sudo echo rm -i file$x; done
3. for(()) の中では C 言語に準じた記法が使えるので偶数のみ,降順などの処理も可能.
# 偶数番号のファイルだけ消す
$ for((x = 0; x <= 10; x += 2)); do echo rm -i file$x; done
# ファイルについた番号をそれぞれ1つ大きくする.これは実行順がクリティカル.
$ for((x = 9; x >= 0; -- x)); do echo mv -i file$x file$((x + 1)); done

オフライン

 

Board footer

Powered by FluxBB