Bagaimana saya bisa memindahkan hanya file biasa (bukan direktori) dari satu folder di Linux ke folder lain menggunakan mv
perintah?
Saya sudah mencoba mv * ~/
, tetapi ia menyalin semuanya termasuk direktori.
Bagaimana saya bisa memindahkan hanya file biasa (bukan direktori) dari satu folder di Linux ke folder lain menggunakan mv
perintah?
Saya sudah mencoba mv * ~/
, tetapi ia menyalin semuanya termasuk direktori.
Jawaban:
Anda dapat mencoba
find . -maxdepth 1 -type f -exec mv {} destination_path \;
-exec
Saya seorang "menggunakan palu untuk semuanya" agak jadi saya menggunakan program shell bourne untuk hal-hal lain menggunakan program eksternal untuk ...
for file in * .*
do
test -f "$file" && mv "$file" "$HOME"/
done
Beberapa orang suka menyelesaikan sesuatu dengan mengetik sesedikit mungkin tapi saya pengetik yang cukup cepat dan saya punya hal-hal seperti ini tertanam dalam otak saya sehingga tidak terlalu merepotkan untuk melakukan ini daripada mencari yang tepat argumen untuk menemukan dan mengeksekusi dan semua itu.
YMMV, meskipun ...
@Mereghost sangat dekat. Inilah yang saya bisa untuk memindahkan semua file (termasuk file tersembunyi), tetapi tidak direktori:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
The .
setelah menemukan mengasumsikan Anda direktori saat ini adalah sumber dari file yang ingin Anda bergerak. Jika tidak, perintah dapat direvisi, sebagai berikut:
find /source_path -maxdepth 1 -type f -name '*' -exec mv -n {} /dest_path \;
Jika Anda ingin memindahkan hanya file biasa dan bukan file tersembunyi:
find . -maxdepth 1 -type f -name '[!.]*' -exec mv -n {} /dest_path \;
Jika Anda ingin memindahkan hanya file tersembunyi dan bukan file biasa:
find . -maxdepth 1 -type f -name '.*' -exec mv -n {} /dest_path \;
Jika Anda tidak memiliki folder dengan nama titik di dalamnya, Anda dapat memindahkan semuanya dengan mudah:
mv . ~ / folder tujuan
(Asumsi saya adalah semua file Anda adalah sesuatu. Sesuatu (dalam kasus saya semua biasanya))
TAPI terima kasih atas jawaban lain - sangat membantu. Terima kasih
Anda dapat menggunakan find
find * -maxdepth 1 -type f -exec mv {} ~ \;
mv `find ./sourcedir/* -type f` ./destdir
find
's -exec
pilihan adalah cara terbaik untuk menghindari masalah tersebut.