mv
Komutu kullanarak yalnızca düz dosyaları (dizinleri değil) Linux'ta bir klasörden başka bir klasöre nasıl taşıyabilirim ?
Denedim mv * ~/
, ama dizinler dahil her şeyi kopyaladı.
mv
Komutu kullanarak yalnızca düz dosyaları (dizinleri değil) Linux'ta bir klasörden başka bir klasöre nasıl taşıyabilirim ?
Denedim mv * ~/
, ama dizinler dahil her şeyi kopyaladı.
Yanıtlar:
Deneyebilirsin
find . -maxdepth 1 -type f -exec mv {} destination_path \;
-exec
Ben "her şey için bir çekiç kullanın" tür adam bu yüzden diğerleri için harici programları kullanmak şeyler için bourne kabuk programları kullanın ...
for file in * .*
do
test -f "$file" && mv "$file" "$HOME"/
done
Bazı insanlar işleri olabildiğince az yazarak yapmayı severler ama oldukça hızlı bir daktilodayım ve beynimde böyle bir şey var, bu yüzden tam olarak bakmak yerine bunu yapmak için çok fazla acı yok bulmak ve yürütmek için argümanlar ve tüm bunlar.
YMMV, yine de ...
@Mereghost çok yakın. İşte tüm dosyaları (gizli dosyalar dahil) taşımak, ancak dizinleri taşımak için ne olsun:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
.
Sonra bulmak Eğer geçerli dizin taşımak istediğiniz dosyaların kaynağıdır varsayar. Değilse, komut aşağıdaki gibi revize edilebilir:
find /source_path -maxdepth 1 -type f -name '*' -exec mv -n {} /dest_path \;
Gizli dosyaları değil, yalnızca normal dosyaları taşımak istiyorsanız:
find . -maxdepth 1 -type f -name '[!.]*' -exec mv -n {} /dest_path \;
Normal dosyaları değil, yalnızca gizli dosyaları taşımak istiyorsanız:
find . -maxdepth 1 -type f -name '.*' -exec mv -n {} /dest_path \;
bul komutunu kullanabilirsiniz
find * -maxdepth 1 -type f -exec mv {} ~ \;
mv `bul ./sourcedir/* -tip f` ./destdir
find
' -exec
Seçeneğini kullanmak sorunu önlemek için en iyi yoldur.