Klasör içeriğini ana klasöre taşı - Linux Komut Satırı


17

Çok fazla dosya içeren folderB içeren bir folderA var. FolderB kurtulmak istiyorum, ancak içeriğini değil. Bu içeriğin A klasörünün içinde olmasını istiyorum. Bunu komut satırında nasıl başarabilirim?

Yanıtlar:


26
$ cd /path/to/folderA
$ mv folderB/* .
$ rmdir folderB

1
mv klasörüB / *. ? nokta nedir
NewLinuxUser

7
Nokta dosyalarına (adı ile başlayan dosyalar) dikkat edin. Yap mv folderB/.* . onları da taşımak için. @NewLinuxUser, sorunuzdaki nokta, çalışma dizini için bir diğer addır (bu durumda folderA).
Brian

1
Bu başarısız olursa folderB/folderB var, bu yüzden komut dosyalarında kullanmaya dikkat edin.
filipos

1
Bu da başarısız olursa folderB çok miktarda dosya içeriyor. Göreceksin bash: /bin/mv: Argument list too long kullanımı nedeniyle *. Eğer durum buysa mv ile bütünlüğünde find @ amphetamachine tarafından belirtildiği gibi veya for loop
Javier de la Rosa

2

Hızlı cevap:

cd /path/to/folderA
find folderB -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir folderB

Sert cevap:

cd /path/to/folderA
folderB_temp="$(mktemp -d -t folderB.XXXXXX)"
mv folderB "$folderB_temp"
find "$folderB_temp/folderB" -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir --parents --ignore-fail-on-non-empty "$folderB_temp/folderB"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.