2017-02-20 38 views
0

我有一个Ubuntu机的下列文件夹设置:
(括号说明文件夹)Linux命令/脚本替换文件夹/目录

[main] 
    | 
    |--- [old] 
    |  | 
    |  |--- [thequick] 
    |  |   | 
    |  |   |--- [aaaa] --- some files 
    |  |   |--- [bbbb] --- some files 
    |  |   |--- [cccc] --- some files 
    |  |   |--- [dddd] --- some files 
    |  |   |--- some files 
    |  | 
    |  |--- [brownfox] 
    |  |   | 
    |  |   |--- [aaaa] --- some files 
    |  |   |--- [bbbb] --- some files 
    |  |   |--- [cccc] --- some files 
    |  |   |--- [dddd] --- some files 
    |  |   |--- some files 
    |  |--- ... 
    |  | 
    |  |--- [lazydog] 
    |     | 
    |     |--- [aaaa] --- some files 
    |     |--- [bbbb] --- some files 
    |     |--- [cccc] --- some files 
    |     |--- [dddd] --- some files 
    |     |--- some files 
    | 
    |--- [new] 
      | 
      |--- [thequick] 
      |   | 
      |   |--- [aaaa] --- some files 
      |   |--- [bbbb] --- some files 
      |   |--- some files 
      | 
      |--- [brownfox] 
      |   | 
      |   |--- [aaaa] --- some files 
      |   |--- [bbbb] --- some files 
      |   |--- some files 
      |--- ... 
      | 
      |--- [lazydog] 
         | 
         |--- [aaaa] --- some files 
         |--- [bbbb] --- some files 
         |--- some files 

我需要找到一个快速的方法来取代所有 [ aaaa]和[bbbb]文件夹各自 [aaaa]和[bbbb]文件夹,而不影响任何其他旧东西。

+0

*取代*:将包含下面的'新/ **/aaaa'的文件'老/ **/aaaa'? – user1934428

+0

同样的问题在这里问。此链接可能有助于http://superuser.com/questions/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one –

回答

2

你可以这样做:

cd /main/old 
find . -type d \(-name 'aaaa' -o -name '-bbbb' \) -exec cp -RfP {} ../new/{} \; 
+0

@FreeBud:这是否工作? – anubhava

0

什么你的意思这是明确的,很标准

cd main/old 
for dir in `find . \(-name aaaa -o -name bbbb \) -a -type d` 
do 
    (
    cd .. 
    if [ -d new/$dir ] 
    then 
     rm -rf old/$dir 
     mv new/$dir old/$dir 
    fi 
    ) 
done 
cd ../.. 
相关问题