Mám tuto strukturu složek:
foo
`----> bar
Jak mohu extrahovat obsah bar
do foo
?
Zkusil jsem mv -f bar/* .
zevnitř foo
.
-f, –síla | před přepsáním se neptat
ale dostávám „nepodařilo se přesunout bar/ajax
na foo/ajax
protože adresář není prázdný“
Jak to mohu vyřešit?
Přijatá odpověď:
mv
přepíše soubory, ale odmítne přepsat adresáře . Neexistuje žádný příkaz, který by sloučil adresáře a odstranil zdrojové adresáře (což je pravděpodobně to, co chcete s mv
). Dokonce i rsync --remove-source-files
ponechá prázdné adresáře.
Můžete použít kombinaci příkazů:
cp -a dev/. .
rm -r dev
který zkopíruje vše v dev
do aktuálního adresáře a poté odstraní dev
adresář.
Nebo:
rsync -a --remove-source-files dev/ .
find dev -depth -type d -exec rmdir {} ;
který používá rsync
přesunout všechny soubory a poté smaže prázdné adresáře, které po nich zůstaly.