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