find /www/ -iname ".htaccess" -exec cp {} {}_cp \;
すべての .htaccess ファイルをコピーして名前を .htaccess_cp に変更しますが、サイト上のすべての .htaccess ファイルをコピーして 1 つのディレクトリに配置したいと考えています。問題は、それらすべてに異なる名前を付ける必要があることです。そうしないと、互いに上書きするだけです。理想的には、親ディレクトリのファイル名が必要です。
どんな助けでも大歓迎です。
find /www/ -iname ".htaccess" -exec cp {} {}_cp \;
すべての .htaccess ファイルをコピーして名前を .htaccess_cp に変更しますが、サイト上のすべての .htaccess ファイルをコピーして 1 つのディレクトリに配置したいと考えています。問題は、それらすべてに異なる名前を付ける必要があることです。そうしないと、互いに上書きするだけです。理想的には、親ディレクトリのファイル名が必要です。
どんな助けでも大歓迎です。
多分このようなもの:
for file in $(find /www/ -iname ".htaccess"); do
new_file_name=$(echo $file | sed 's#/#_#g')
cp $file $new_file_name
done
次のようなことを試すことができます:
find /www -name '.htaccess' -exec bash -c 'newfile=${1}_cp; if [[ ! -e $newfile ]]; then
cp "$1" "$newfile"
else
count=1
while true; do
if [[ ! -e ${1}_cp.$count ]]; do
cp "$1" "${1}_cp.$count"
break
else
((count++))
fi
done
fi' -- {} \;