GNU/Linux >> Belajar Linux >  >> Linux

Cara memindahkan semua file termasuk file tersembunyi ke direktori induk melalui *

Saya pikir ini yang paling elegan, karena juga tidak mencoba memindahkan .. :

mv /source/path/{.[!.],}* /destination/path

Anda dapat menemukan serangkaian solusi lengkap tentang ini di jawaban UNIX &Linux untuk Bagaimana Anda memindahkan semua file (termasuk yang tersembunyi) dari satu direktori ke direktori lain?. Ini menunjukkan solusi dalam Bash, zsh, ksh93, standar (POSIX) sh, dll.

Anda dapat menggunakan kedua perintah ini secara bersamaan:

mv /path/subfolder/* /path/   # your current approach
mv /path/subfolder/.* /path/  # this one for hidden files

Atau bersama-sama (terima kasih pfnuesel):

mv /path/subfolder/{.,}* /path/

Yang meluas ke:

mv /path/subfolder/* /path/subfolder/.* /path/

(contoh:echo a{.,}b diperluas ke a.b ab )

Perhatikan bahwa ini akan menampilkan beberapa peringatan:

mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory

Abaikan saja:ini terjadi karena /path/subfolder/{.,}* juga diperluas ke /path/subfolder/. dan /path/subfolder/.. , yang merupakan direktori dan direktori induk (Lihat Apa arti “.” dan “..” saat berada di folder?).

Jika Anda hanya ingin menyalin, Anda dapat menggunakan:

saja
cp -r /path/subfolder/. /path/
#                     ^
#                     note the dot!

Ini akan menyalin semua file, baik yang normal maupun yang tersembunyi, sejak /path/subfolder/. memperluas ke "semuanya dari direktori ini" (Sumber:Bagaimana cara menyalin dengan cp untuk menyertakan file tersembunyi dan direktori tersembunyi beserta isinya?)


Ini akan memindahkan semua file ke direktori induk seperti yang diharapkan tetapi tidak akan memindahkan file tersembunyi. Bagaimana cara melakukannya?

Anda dapat mengaktifkan dotglob :

shopt -s dotglob               # This would cause mv below to match hidden files
mv /path/subfolder/* /path/

Untuk menonaktifkan dotglob , Anda harus mengatakan:

shopt -u dotglob

Linux
  1. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  2. Bagaimana Memindahkan Semua File (termasuk Tersembunyi) Dari Satu Direktori Ke Yang Lain?

  3. Bagaimana Cara Menghapus Semua File Dengan Ekstensi Tertentu Di Folder Tertentu?

  1. Bagaimana cara memindahkan (dan menimpa) semua file dari satu direktori ke direktori lain?

  2. Bagaimana mengubah semua kemunculan kata di semua file dalam direktori

  3. Bagaimana menemukan semua file dengan direktori induk tertentu di linux?

  1. Bagaimana cara memindahkan semua file dari direktori saat ini ke direktori atas?

  2. Bagaimana cara chown/chmod semua file di direktori saat ini?

  3. Cara memindahkan semua file dan folder melalui perintah mv