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