2012-05-24 18 views
1
find /www/ -iname ".htaccess" -exec cp {} {}_cp \; 

將複製所有的.htaccess文件的重命名他們.htaccess_cp但我想要做的就是複製所有的.htaccess文件的網站上,並把它們放到一個目錄。問題是,他們都需要有一個不同的名字,否則他們只會覆蓋彼此。理想情況下,我希望他們擁有父目錄的文件名。Ubuntu的CLI羣衆找到CP

任何幫助,將不勝感激。

回答

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' -- {} \; 
+0

與唯一的問題是將一個遞增的數字追加到尾部但是說的30個站點那裏有每個不同的.htaccess文件我不知道哪個.htaccess文件與哪個站點一起使用? – user1415813

0

也許是這樣的:

for file in $(find /www/ -iname ".htaccess"); do 
    new_file_name=$(echo $file | sed 's#/#_#g') 
    cp $file $new_file_name 
done 
+0

真棒,完美的作品! – user1415813