・Ubuntu Tweak を使って Nautlius の機能を拡張する
Ubuntu の設定ツールである Ubuntu Tweak を使えば簡単に Nautilus の機能を拡張できる。 Ubuntu Tweak は様々な Ubuntu の設定を行うことが出来る便利なツールだが、今回は Nautilus をスーパーユーザー権限で使う為の機能拡張に使う。インストールしていない場合はまずインストール。
$ sudo add-apt-repository ppa:tualatrix/ppa
$ sudo apt-get update
$ sudo apt-get install ubuntu-tweak
・Nautilus の右クリックメニューにスクリプトを追加
Ubuntu Tweak を起動したら、「システム設定」から「スクリプト」の項目を選択する。
ここで Nautilus のスクリプトを設定できる。左側の「無効なスクリプト」から使いたいものをドラッグアンドドロップで「有効なスクリプト」上の nautilus-scripts フォルダ下に配置すると、そのスクリプトが Nautilus で使える。 Nautilus をスーパーユーザー権限で便利に使うには、「管理者として参照」や「お気に入りのテキストエディタで開く (root権限)」のスクリプトを追加すればよい。「管理者として参照」は、選択したディレクトリやファイルをスーパーユーザー権限で開く事が出来る。開いたものがディレクトリなら、そのディレクトリをフルアクセス出来る。「お気に入りのテキストエディタで開く (root権限)」は選択したファイルをスーパーユーザー権限のテキストエディタで開く。これは書き込み権限のない設定ファイルの編集に役に立つ。フォルダを作ればスクリプトを階層上にまとめる事が出来るので、スクリプト別にまとめておくと整理される。
・自分でスクリプトを作る
Nautilus の右クリックメニューから「スクリプト」を選んで、「このフォルダーを開く」を選択する。するとスクリプトのディレクトリ(メニューにスクリプトの項目がない場合は /home/ユーザー名/.local/share/nautilus/scripts を直接参照)が開くので、ここに手動でシェルスクリプトを追加できる。
この手段でスクリプトを呼び出した時、 Nautilus が自動的に選択したファイルやカレントディレクトリの URI を変数に設定してくれる。これらの変数はスクリプトの作成に便利だ。
NautilusScriptsHowto
・「管理者権限で開く」(Ubuntu Tweak に頼らない版・追記)
アップグレードするごとに仕様がコロコロ変わる Ubuntu において、Ubuntu Tweak のサポート状況も怪しくなってきているので、 Ubuntu Tweak に頼らず実行可能な「管理者権限で開く」スクリプトも作ってみた。単純にディレクトリとテキストファイルをそれぞれ nautilus と gedit で開く(一度の選択で複数を開く必要はないと思われるので一つを選択した時のみ開く)。
#!/bin/bash
FILE_MANAGER=nautilus
EDITOR=gedit
PRE_IFS=$IFS
IFS=$'\n'
path=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
is_TEXT() {
echo `file $1 | grep "text"`
}
if [ -d $path ]; then
gksudo $FILE_MANAGER $path
elif [ -f $path -a `is_TEXT $path` ]; then
gksudo $EDITOR $path
fi
IFS=$PRE_IFS
テキストファイルのチェックは file コマンドを利用してその情報に text の文字が含まれていたら開く、という単純な仕組み(よってテキストなのに開けないものもあるかもしれない)。 IFS を操作しているのはスペースの含まれたファイル名に対応するため。
・選択したディレクトリ及びファイルの「名前に含まれるスペースをアンダーバーに置換」
このスクリプトは選択したすべてのディレクトリ及びファイルの名前に含まれるスペース(" ")をアンダーバー("_")に置換し、コマンドライン上で参照可能にする。
#!/bin/bash
PRE_IFS=$IFS
IFS=$'\n'
paths=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
replace_space() {
echo `basename "$1" | tr " " "_"`
}
for path in $paths; do
mv $path `replace_space $path`
done
$IFS=$PRE_IFS
スーパーユーザー権限を使ってゴミ箱に移動したファイルは /root/.local/share/Trash にある。この場所にはアクセスがしづらいので、 rootのゴミ箱にアクセス出来るスクリプトを作ると便利だろう。
「rootのゴミ箱を開く」
#!/bin/bash
gksudo nautilus /root/.local/share/Trash/files
rootのゴミ箱のディレクトリを開く。スーパーユーザー権限でゴミ箱に移動したファイルはここにあるので、復元する場合はここから移動させればよい(権限に注意)。
「rootのゴミ箱を空にする」
#! /bin/bash
gnome-terminal -e 'sudo bash -c "rm -rf /root/.local/share/Trash/{files,info}/* /root/.local/share/Trash/{files,info}/.*"'
このスクリプトは実行すると一旦端末を開いて、そこから sudo で bash を実行する。 rm -r /root/.local/share/Trash でディレクトリを強引に削除しても、ゴミ箱にファイルを移動させると新しくディレクトリが作られるので大丈夫かもしれない。
リポジトリ(↓)の追加が必要であることも記載した方が良いのでは?
返信削除deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu trusty main
痛み入ります、今更ですが追加しました
削除