
Ubuntu日本語フォーラム

ログインしていません。
ファイラ(Nautilus)にスクリプトを登録し、選択したディレクトリを一度に個別圧縮したいです。
色々調べてみたのですが、なかなか見つかりません。
開いているディレクトリ内の全てのディレクトリを個別圧縮する事は下記のスクリプトで出来たのですが、選択したもののみを対象に圧縮するにはどうしたら良いでしょうか?
#!/bin/bash
# zip each directory
find . \! -name '*.zip' \! -name '.' -type d -exec zip -r {}.zip {} \;
質問が重複していたら申し訳ありません。
オフライン
こんな便利な機能があったのですね〜
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こんな感じ?
オフライン
親ディレクトリ名にスペースが含まれていると不具合が出ますね 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オフライン