Klasörde bir sürü klasör var A. Tüm bu klasörlerdeki dosyaları taşımak istiyorum A.
Veya
Tüm dosyaları alt klasörlerden kesip üst klasöre yapıştırmak istiyorum.
Bu nasıl yapılır?
mv */* .dosyaları alt klasörlerin alt klasöründen taşımaz.
Klasörde bir sürü klasör var A. Tüm bu klasörlerdeki dosyaları taşımak istiyorum A.
Veya
Tüm dosyaları alt klasörlerden kesip üst klasöre yapıştırmak istiyorum.
Bu nasıl yapılır?
mv */* .dosyaları alt klasörlerin alt klasöründen taşımaz.
Yanıtlar:
ADizine git ve koş
find . -mindepth 2 -type f -print -exec mv {} . \;
bu, "bu dizindeki ve alt dizinlerindeki tüm dosyaları bul ve hedef dizine sahip mv'yi çalıştır" anlamına gelir.
findbiraz daha şık olabilir ve mvher dosya için bir işlem ortaya find A -mindepth 2 -type f -exec mv -t A \{\} +
find . -mindepth 2 -type f -print -exec mv --backup=numbered {} . \;
Bir dosya oluşturabilir ve "cutme" olarak adlandırabilirsiniz (terminal türünde cutme adlı bir dosya oluşturmak için nano cutme. Kaydetmek için CTRL + X tuşlarına basıp ENTER tuşuna basın.) Örneğin aşağıdakileri yapıştırarak şunları yapıştırın:
find * -type f -print -not -type d -and -not -regex 'cutme' -exec mv {} .. \;
Satır içindeki adı cutme unutmayın . Çalıştıracağınız komut dosyası ile aynı olmalıdır.
Dosyayı oluşturduktan ve yukarıdaki satırı yapıştırdıktan sonra, aşağıdakileri komut dosyasıyla aynı klasörde çalıştırın:
chmod +x cutme. Bunu böyle yürütebileceği şekilde bu "Çalıştırılabilir" bayrak Yeni dosyanızı verecektir: ./cutme.
mv */* .mi?