サブフォルダツリーにスクリプトを適用する

サブフォルダツリーにスクリプトを適用する

サブフォルダツリーに次のスクリプトを適用する必要がありますが、ツリーの各サブフォルダで実行するためにこのスクリプトをどのように呼び出すべきかわかりません。一度だけすればいいです。よろしくお願いします。

#!/bin/bash
for file in *.*
do
    [[ -d "$file" || $file =~ _[[:digit:]]{3}\. ]] && continue
    echo -n "Considering $file: " >&2

    extn="${file/*.}"
    versions=()
    keep="$file"

    # Look at matching files
    for version in "${file%.$extn}"_???."$extn"
    do
        [[ -f "$version" ]] || continue

        # Save every one. Identify the current last
        versions+=($version)
        keep="$version"
        echo -n "$version " >&2
    done
    echo "==> keep $keep" >&2

    # Delete them all except the last
    for version in "${versions[@]}"
    do
        [[ "$version" != "$keep" ]] && echo rm -f "$version"
    done
    [[ "$keep" != "$file" ]] && echo mv "$keep" "$file"
done

ベストアンサー1

myrename名前があり、ディレクトリにあるとし、上記のスクリプトに名前を付けます$HOME。次に、findでexecdirを使用してツリーをナビゲートします。

find /root/of/tree -depth -type d -execdir "$HOME/myrename" \{\} \;

myrenameを次のように試してみてください。

#!/bin/bash

echo "directory $1"

おすすめ記事