web-dev-qa-db-ja.com

ターミナルから複数のファイルのアイコンを変更するには?

ターミナルから複数のファイルのアイコンを変更したいと思います。
ランチャーアイコンではなく、ファイルの末尾に基づくファイルタイプのデフォルトアイコン。
このタスクを達成するには?

8
karthick87

「エンブレム」は、ディレクトリ~/.local/share/gvfs-metadataにバイナリとして保存されます。

したがって、 gvfs-binInstall gvfs-bin これを抽出して保存できるようにします。ああ、パーティション/ボリューム/ディレクトリ/ファイルごとに1つのファイルがあります(事態を悪化させるため)。

エンブレムに関する情報を取得するには、次を使用できます。

gvfs-info -a metadata::emblems {filename|folder}

{filename}または{folder}に{icon}を設定するには、次を使用します。

gvfs-set-attribute -t stringv {filename|folder} metadata::emblems {icon}

例:

〜/ Musicにフォルダー1、2、3、4を作成しました。

im1

イメージのターミナル内のコマンド:

gvfs-set-attribute 1 metadata::custom-icon file:///usr/share/pixmaps/gnome-log.png

gvfs-set-attribute 2 metadata::custom-icon file:///usr/share/pixmaps/gnome-spider.png

1と2を既存のビデオファイルまたはその他の実際のファイルに変更すると、同じように機能します。

f5は下部パネルを更新します。

ディレクトリ3と4から推測できるように、これが必要なすべてのファイルに対してこれを行う必要があります。

ディレクトリをウォークスルーし、フォルダ内にあるPNGをフォルダエンブレムとして設定するスクリプトを次に示します(基本的に、これはfolder.pngをその上のディレクトリのエンブレムとして使用するWindowsの方法を模倣しています)。

#!/ usr/bin/python 
 
 osのインポート
 os.pathからのインポートimport join 
 
 cwdir = str( os.popen( 'pwd')。readline())。replace( '\ n'、 '')
 
 os.walk(cwdir)内のルート、ディレクトリ、ファイル:
ファイル内の名前:
 if name.lower()。find( '。png')!= -1:
 os.system( 'gvfs-set-attribute "' + root + '"metadata :: custom-icon"' + name + '"')

これを、ファイルを含む独自のバージョンに変更できる場合があります。

自己責任でのスクリプトの使用

9
Rinzwind