mv: A könyvtár nem üres

124

Egy könyvtár tartalmát egy másik könyvtárban szeretném áthelyezni ugyanazokkal a mappákkal.

Íme egy példa:

Van./backup, amelyek a könyvtárakbase éstest. Most szeretném áthelyezni ezeket a könyvtárakat a (z)./backupArchives -ban.

Ezt használom:

mv ./backup/* ./backupArchives

de hiba történt

mv: cannot move './backup/base' to './backupsArchive/base': Directory not empty

Próbáltam--force -ot használni, de nincs szerencsém. Van-e mód arra, hogy elmozduljon, ha már léteznek mappák?

Megjegyzés: Csak tartalmat szeretnék összevonni, nincs felülírás.

    
készlet UdK 19.03.2013 05:11
forrás

5 válasz

159

Bár a man oldal nem dokumentálja, amv megtagadja a könyvtár átnevezését egy másik könyvtárba, ha a célkönyvtár fájlokat tartalmaz. Ez jó dolog az Ön ügyében, mert kiderül, hogy merge a forrás tartalmát a célba, amelyet amv nem.

Arsync -a backup/ backupArchives/ helyett használja. Ezt követőenrm -rf backup/*.

Arsync használata helyett a klasszikus

elemet is elvégezheti
(cd backup && tar c .) | (cd backupArchives && tar xf -)

amely több geek pontot keres.

    
válasz adott zwets 19.03.2013 08:51
forrás
24

Gyors és piszkos, ha tudod, mit csinálsz:

cp -r ./backup/* ./backupArchives && rm -R ./backup/*
    
válasz adott patrickvacek 10.10.2013 18:07
forrás
3

A költöztetés után* (minden szöveg vagy számot jelez). Például:

mv /var/www/* /recovery/wwwrecovery/

ez mindent, ha fájlokat mozgat, mint ahogyan a következőkben:

mv /var/www/index.php /recovery/index.php

Egy másik módja az, hogy a mappa tartalma a tar:

használatával csomagolható
tar -cvzpf backup.tar.gz /var/www 

Akkor helyezze át a többi fájlt. Azt is javaslom ezt a lépést, mert a kátrány összenyomja, és kisebb méretűvé teszi.

A fájlok másik mappába való kibontásához használja a

billentyűt
tar -xvzpf /var/www/

Ha nem kell egy olyan helyre másolnia, amelyik nem a saját tulajdonosa, győződjön meg róla, hogy asudo paranccsal adja hozzá a parancsot, miután választja azt a beállítást, amelyet használni szeretne.

sudo tar -cvzpf backup.tar.gz /var/www/
    
válasz adott Dimitris Theodoridis 19.03.2013 05:27
forrás
3

Bizonyos, hogy a (z)rsync nem működik, de ez olyan gépen is működhet, amely nem támogatja arsync -ot (vagyis a cpanelben, amely alapértelmezés szerint nincs telepítve rsync).

Mi a helyzet a használatával:

cd /path/to/backup/ && cp -R --parents ./* ../backupArchives

Szükség esetén távolítsa el abackup könyvtárat

Megjegyzés1:cd -ot abackup könyvtárba acp -R --parents ...

Megjegyzés2: Ellenőrizze abackupArchives könyvtárat, ha új fájlokat kap a mentésből.

    
válasz adott Atillo Regner Rex 03.03.2017 08:45
forrás
1

Mielőtt feltennénk a kérdést, vegyünk egy egyszerűsített esetet.

Tegyük fel, hogy a / home / admin mappában két mappát találunk:foo ésbar, amelyek ugyanazt az alkönyvtárstruktúrát tartalmazzák, de különböző fájlokat tartalmaznak benne. Most össze akarjuk illeszteni őket. Amikormv foo/* bar -ot csinálunk, amv: directory not empty hiba történik.

A megoldás az, hogy feladja a parancssori eszközöket, és váltson át GUI fájlkezelőre, például a delfinre. Amikor átnevezi afoo -ot abar -ra a delfinben, megadja a lehetőséget, hogy beírja a célmappába, és megkérdezi, hogy interaktív módon felülírja-e a meglévő fájlokat. Ezzel elkerülhető a másolás és a törlés, amely gyakorlatilag egy sor kód nélkül ment időt.

PS: Nem teszteltem minden fájlkezelőt oda. De legtöbbjüknek ezt a funkciót kell ellátnia.

    
válasz adott navigaid 12.10.2016 11:22
forrás