お知らせ

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

#1 2016-05-24 03:29:20

NK
新しいメンバ
登録日: 2011-02-22

ディレクトリを複数選択して個別圧縮したいのですが

ファイラ(Nautilus)にスクリプトを登録し、選択したディレクトリを一度に個別圧縮したいです。
色々調べてみたのですが、なかなか見つかりません。
開いているディレクトリ内の全てのディレクトリを個別圧縮する事は下記のスクリプトで出来たのですが、選択したもののみを対象に圧縮するにはどうしたら良いでしょうか?

#!/bin/bash
# zip each directory
find . \! -name '*.zip' \! -name '.' -type d -exec zip -r {}.zip {} \;

質問が重複していたら申し訳ありません。

オフライン

 

#2 2016-05-24 22:37:53

favicon.ico
メンバ
登録日: 2010-09-06

Re: ディレクトリを複数選択して個別圧縮したいのですが

こんな便利な機能があったのですね〜

Ubuntu Mate の Caja で実行してみました

コード:

#!/bin/bash
IFS=$'\n'
for path in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ; do
  if [ -d "$path" ]; then
    target=$(basename "$path")
    chdir $(dirname "$path")
    zip -r "$target" "$target"
  fi
done

こんな感じ?

オフライン

 

#3 2016-05-25 05:07:56

NK
新しいメンバ
登録日: 2011-02-22

Re: ディレクトリを複数選択して個別圧縮したいのですが

ありがとうございます。
やりたかった事が出きました。

オフライン

 

#4 2016-05-25 09:26:18

favicon.ico
メンバ
登録日: 2010-09-06

Re: ディレクトリを複数選択して個別圧縮したいのですが

親ディレクトリ名にスペースが含まれていると不具合が出ますね orz
ちょっと修正します

コード:

#!/bin/bash
while read path
do
  if [ -d "$path" ]; then
    base_name=$(basename "$path")
    dir_name=$(dirname "$path")
    chdir "$dir_name"
    zip -r "$base_name" "$base_name"
  fi
done <<END
$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
END

オフライン

 

#5 2016-05-25 18:30:14

NK
新しいメンバ
登録日: 2011-02-22

Re: ディレクトリを複数選択して個別圧縮したいのですが

度々ありがとうございます。

オフライン

 

Board footer

Powered by FluxBB