
Ubuntu日本語フォーラム

ログインしていません。
こんにちは。
GUIからショートカットを作成するときに
『○○「へのリンク」』と表示されますが,
の「」の部分がでないような方法をご存知の方はご教示ください。
よろしくお願いします。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-10-21 07:35:01)
オフライン
kiyoshiさん
kiyoshi による投稿:
$ sudo find / -iname "へのリンク" -ok mv {} `tr -d "へのリンク" < {}`
いろいろ試してみましたが、その結果分かったのは、
1. -inameに渡すのはシェルで使うようなファイルパターンであり、正規表現マッチパターンではない。
2. trの標準入力に渡すのは{}で示されるファイル名であり、ファイルの中身ではない。
3. ``の評価はシェルによって、find実行前に行われる。
4. -okの最後にはコマンドの終端を表すセミコロンが必要。しかもそれはシェルに横取りされないようにエスケープしなければならない。
あたりに問題がありそうです。
(root権限で/に対して実行するのはあまりに危険という問題もありますが・・^^;)
あまりエレガントではないですが、
#!/bin/bash
name=$1
mv "$name" "${name% へのリンク}"といったシェルスクリプトを、例えば~/bin/dellinkstrなどとして作り、
$ find . -iname "* へのリンク" -ok dellinkstr {} \;とすればうまくいくようです。
" へのリンク"を末尾に持つファイル名が順番に列挙されるので、yを入力するとファイル名変更が行われます。
# findの結果をforに流す手も考えましたが、ファイル名に空白が含まれる場合に一つのファイル名が分割されてしまうようです。
# 何か手はありそうですが・・・。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-10-21 12:25:33)
オフライン
kiyoshiさん
$ find . -iname "*へのリンク"
とすれば、ファイル名の末尾に「へのリンク」とあるファイルだけが検索されるはずなのですが・・・。
念のため、sedに渡すパターンを
sed -e 's/へのリンク[\r\n]*$//g' ./test.txt
とでもしておくといいかもしれません。
veraveraさん
すみません。だいぶオフトピになってしまいました。
表題の件ですが、関連する記事を見つけました。
http://ubuntuforums.org/showthread.php?t=280353
http://bugzilla.gnome.org/show_bug.cgi?id=534432
http://ubuntuforums.org/showthread.php?p=5544079
なお、英語版では「link to 」がファイル名の前に付け加わります。
元のファイルと同じフォルダにリンクを作る場合にこういう名前の変更があるのは仕方ありません。
同じフォルダに同じ名前のファイルやフォルダは存在できないからです。
ただ、Ubuntu8.04のnautilusでは別のフォルダにリンクを作る場合でも名前の変更を行います。
以前のGNOMEのnautilusではこういう挙動ではなかったようなので、大不評となっているようです。
現状としては、設定ファイルでどうこうできる問題ではなさそうです。
nautilusのソースファイルにパッチを当てて、ビルドする必要があります。
ただ、これだけ不評となっている以上、今後のバージョンアップで改善される可能性はあるかと思います。
最後の編集者: toshio (2008-10-21 14:32:28)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-10-22 07:20:45)
オフライン
みなさま。
本当にありがとうございました。
toshio さん>
なるほど。やはり不満に持っている方がたくさんおられるようですね!
ありがとうございました。私はとりあえずこの設定が変更されるまで待ってみることにいたします。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-12-03 23:43:23)
オフライン