Klasörleri hariç tutamaksızın tüm dosyaları tek bir hedef klasöre nasıl kopyalarım?


2

Ben var gibi birkaç klasör /music/1/a.mp3ve/music/2/b.mp3

Tüm dosya adlarının kendilerinin farklı olmaları garanti edilir.

Muhtemelen Terminal'i kullanarak bu dosyaları /musicTemp/klasörleri dışlamak için kopyalamanın bir yolu var mı ?

Başka bir deyişle, yukarıdaki iki örneğin sonucu şöyle olmalıdır:

/music/1/a.mp3
/music/2/b.mp3

içine:

/musicTemp/a.mp3
/musicTemp/b.mp3

2
Finder özyinelemeli dosyaları aramak için bir seçenek sunuyor mu? Evetse, arama yapın, tümünü seçin ve hedefinize sürükleyin. Bunun diğer işletim sistemlerinde iyi bir seçenek olduğunu biliyorum.
Ben Voigt

1
Bu çok açık, sadece yüz yüze çıktı. Tüm dosyalar .m4a'dır ve Finder, sadece / music / ile sınırlandırmama izin verir. Teşekkürler!!!
samiles

1
Sadece bir alternatif eklemek için:find /music -name "*.mp3" -type file -exec mv {} /destination_dir \;
Hennes

2
@Hennes: cphayır mv. Aksi takdirde çalışması gerekir.
Ben Voigt

Yanıtlar:


4

findKomut bu durumda, belirli bir dosya türünü belirli bir desen (-adı) tüm dosyaları bulacaksınız: *.mp3. -execaşağıdaki tüm argümanları, oluşan bir argümanla ;karşılaşıncaya kadar (sonunda kabuğun genleşmesini önlemek için değişmez kaçış ile) komuta argüman olarak alınacak bulmayı yapar . Bu durumda, yürütmek istediğimiz komut, cppattern ( {}) ile eşleşen dosyalara bir dosya kopyası ( ) ve bu dosyaları kopyalar /destination_dir. Bu komut hile yapmalı:

find /music -name "*.mp3" -type file -exec cp {} /destination_dir \;

3

Eğer varsa Bash 4 yüklü , eklemek olabilir shopt -s globstar.bash_profile ve bu çalıştırmak için:

cp /music/**/*.mp3 /musicTemp/

shopt..mv**
Modlar
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.