Yanıtlar:
Bul -maks. 1 -exec mv {} .. \;
Bu gizli dosyaları da taşıyacaktır.
Mesajı alacaksınız:
mv: hareket edemiyor. ila ../. ': Cihaz veya kaynak meşgul
Hareket etmeye çalıştığında .
(geçerli dizin) ancak bu herhangi bir zarara neden olmaz.
-maxdepth 1
emin olmak için.
Buraya geldim çünkü bu konuda da yeniyim. Nedense yukarıdakiler benim için hile yapmadı. Tüm dosyaları bir dizinden üst dizinine taşımak için yaptığım şey:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Bunu kabuğa yazın:
mv *.* ..
Bu TÜM dosyaları bir seviye yukarı taşır.
Karakter *
bir jokerdir. Böylece *.deb
tüm .deb dosyaları Zeitgeist.*
taşınacak ve Zeitgeist.avi ve Zeitgeist.srt dosyalarından birini yukarı taşıyacaksınız, çünkü elbette ..
ana dizini gösterir.
Vs klasörler dahil her şeyi taşımak için, sadece kullanmak *
yerine*.*
*
değil *.*
dizinleri dahil etmek
Şundan daha basit olamaz:
mv * ../
Gizli dosyaları da taşımak için:
mv /path/subfolder/{.,}* /path/
mv
dosyaları taşımak için kullanılan bir komuttur, *
tüm dosyalar ve klasörler anlamına gelir ../
ve ana dizine giden yoldur.
Bash'da tüm dosyaları eşleştirmek ve basitçe hareket ettirmek için shopt -s dotglob komutunu kullanabilirsiniz .
shopt -s dotglob; mv * ..
Bu en iyi çözüm değildir, çünkü siz değiştirene kadar ayar kabuk için kalıcıdır.
shopt -u dotglob
ama bence bilmek güzel.
(shopt -s dotglob && mv * ..)
. Bu şekilde, seçenek yalnızca bu alt kabuk için yereldir.
Hataya neden olmayan ve her seferinde çalışan bir yöntem:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
find . -maxdepth 2 -type f -exec mv {} .. \;
Tüm dosyaları alt klasörlerden üst öğeye taşımak için yukarıdaki bir varyasyonu kullandım.
Klasörlerdeki yıla göre veri aldım, ancak meta verileri kullanarak hepsini aynı klasörde bulabilirdim, bu da yönetilmelerini kolaylaştırdı.
Örneğin.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
Tüm dosya ve klasörleri Linux'ta ana dizine taşımak kolaydır.
Bu klasöre gidin ve bu komutu kullanın:
mv * /the full path
Örneğin, dosyalarınız ve klasörleriniz aşağıdaki gibidir:
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Bu klasöre cd ile gidin:
cd /home/abcuser/test
mv * /home/abcuser
Tüm dosya ve klasörleriniz abcuser klasörüne (ana dizin) taşınır.
/the full path
Linux'ta çalışmıyorsa, boşluklardan kaçmak zorundasınız /the\ full\ path
.
Dizinleri değiştirmeye gerek yoktur. Sadece yolun sonuna * ekleyin:
mv /my/folder/child/* /my/folder/
Yukarıda sadece gizli olmayan dosyaları taşır. Sadece gizli dosyaları taşımak için kullanın. *
mv /my/folder/child/.* /my/folder/
İkiden büyük bir komutla birleştirilebilir:
mv /my/folder/child/{.,}* /my/folder/
Ayrıca bkz .: Gizli dosyalar dahil tüm dosyalar üst dizinine * ile nasıl taşınır?
Alt dizine geçin ve dosyaları kopyalamak veya taşımak için aşağıdaki komutu uygulayın.
Örn: a, ana dizin ve b, alt dizindir, tüm dosyaları b'den a'ya (alt dizinine ana dizine) taşımak / kopyalamak istiyoruz.
cd b
cp * ..
mv * ..