Jawaban:
Temukan . -maxdepth 1 -exec mv {} .. \;
ini juga akan memindahkan file tersembunyi.
Anda akan mendapatkan pesan:
mv: tidak bisa bergerak `. ' to `../. ': Perangkat atau sumber daya sibuk
ketika mencoba untuk pindah .
(direktori saat ini) tetapi itu tidak akan menyebabkan kerusakan.
-maxdepth 1
memastikan.
Saya datang ke sini karena saya juga baru dalam hal ini. Untuk beberapa alasan di atas tidak melakukan trik untuk saya. Apa yang saya lakukan untuk memindahkan semua file dari direktori ke direktori induknya adalah:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Ketikkan ini di shell:
mv *.* ..
Itu memindahkan SEMUA file satu tingkat ke atas.
Karakternya *
adalah wildcard. Jadi *.deb
akan memindahkan semua file .deb, dan Zeitgeist.*
akan memindahkan Zeitgeist.avi dan Zeitgeist.srt satu folder ke atas, karena, tentu saja, ..
menunjukkan direktori induk.
Untuk memindahkan semuanya termasuk folder, dll, gunakan saja *
alih-alih*.*
*
tidak *.*
memasukkan direktori
Tidak mungkin lebih sederhana dari:
mv * ../
Untuk juga memindahkan file tersembunyi:
mv /path/subfolder/{.,}* /path/
mv
adalah perintah untuk memindahkan file, *
berarti semua file dan folder dan ../
merupakan jalur ke direktori induk.
Di bash Anda dapat menggunakan shopt -s dotglob untuk membuat * pertandingan semua file dan memindahkan mereka hanya dengan
shopt -s dotglob; mv * ..
Ini bukan solusi terbaik karena pengaturannya permanen untuk shell sampai Anda mengubahnya
shopt -u dotglob
tapi saya pikir itu baik untuk diketahui.
(shopt -s dotglob && mv * ..)
. Dengan begitu, opsi hanya lokal untuk subkulit itu.
Metode yang tidak menyebabkan kesalahan dan berfungsi setiap saat:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
find . -maxdepth 2 -type f -exec mv {} .. \;
Saya menggunakan variasi di atas untuk memindahkan semua file dari subfolder ke induk.
Saya mendapatkan data dalam folder per tahun, tetapi ditemukan dengan menggunakan metadata, saya dapat menyimpan semuanya di folder yang sama yang membuatnya lebih mudah untuk dikelola.
misalnya.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
Sangat mudah untuk memindahkan semua file dan folder ke direktori induk di Linux.
Buka folder itu dan gunakan perintah ini:
mv * /the full path
Misalnya, jika file dan folder Anda adalah sebagai berikut:
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Buka folder itu melalui cd:
cd /home/abcuser/test
mv * /home/abcuser
Semua file dan folder Anda akan dipindahkan ke folder abcuser (direktori induk).
/the full path
tidak bekerja di Linux, Anda harus keluar dari ruang /the\ full\ path
.
Tidak perlu mengubah direktori. Cukup sertakan * di ujung jalan:
mv /my/folder/child/* /my/folder/
Di atas hanya memindahkan file yang tidak tersembunyi. Untuk memindahkan hanya file yang tersembunyi gunakan. *
mv /my/folder/child/.* /my/folder/
Di atas dua dapat digabungkan menjadi satu perintah:
mv /my/folder/child/{.,}* /my/folder/
Lihat juga: Cara memindahkan semua file termasuk file tersembunyi ke direktori induk melalui *
find -type f|while read line; do mv $line ${line##*/}; done
find
ke dalam while read
adalah cara yang buruk untuk digunakan find
, dan jawaban yang lebih baik telah diposting.
beralih ke sub direktori dan jalankan perintah berikut untuk menyalin atau memindahkan file.
ex: a adalah direktori induk dan b adalah sub direktori, kami ingin memindahkan / menyalin semua file dari b ke (sub direktori ke direktori induk).
cd b
cp * ..
mv * ..