find /www/ -iname ".htaccess" -exec cp {} {}_cp \;
将复制所有 .htaccess 文件并将它们重命名为 .htaccess_cp 但我想做的是复制站点上的所有 .htaccess 文件并将它们放在一个目录中。问题是他们都需要有一个不同的名字,否则他们只会互相覆盖。理想情况下,我希望他们拥有父目录的文件名。
任何帮助,将不胜感激。
find /www/ -iname ".htaccess" -exec cp {} {}_cp \;
将复制所有 .htaccess 文件并将它们重命名为 .htaccess_cp 但我想做的是复制站点上的所有 .htaccess 文件并将它们放在一个目录中。问题是他们都需要有一个不同的名字,否则他们只会互相覆盖。理想情况下,我希望他们拥有父目录的文件名。
任何帮助,将不胜感激。
你可以尝试这样的事情:
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' -- {} \;
也许是这样的:
for file in $(find /www/ -iname ".htaccess"); do
new_file_name=$(echo $file | sed 's#/#_#g')
cp $file $new_file_name
done