GNU/Linux >> Belajar Linux >  >> Linux

Mv * Folder (menghindari Kesalahan 'tidak dapat Pindah')?

Pertanyaan ini sudah memiliki jawaban di sini :“mkdir foo; svn mv * foo”

(3 jawaban)
Tutup 8 tahun yang lalu.

Setiap kali saya ingin memindahkan ribuan file ke folder baru, saya selalu menghadapi masalah yang sama.

> mkdir my_folder
> mv * my_folder
mv: cannot move 'my_folder to a subdirectory of itself 'my_folder'

Meskipun menurut saya kesalahan di atas tidak berbahaya (bukan? ) Saya ingin tahu apakah ada cara untuk menghindarinya.

Jika itu penting, saya tertarik pada solusi dalam zsh atau solusi yang bekerja dengan baik di berbagai shell.

Jawaban yang Diterima:

Di zsh, dengan extended_glob opsi diaktifkan, Anda dapat menggunakan ~ untuk mengecualikan pola dari gumpalan, sehingga Anda dapat menggunakan:

setopt extended_glob
mv -- *~my_folder my_folder

Atau gunakan operator negasi (masih dengan extended_glob ):

mv -- ^my_folder my_folder

Gunakan kurung kurawal untuk menghindari mengetik nama direktori dua kali:

mv -- {^,}my_folder

Di bash (untuk pencari jawaban lain yang menggunakannya), Anda dapat menggunakan gumpalan diperpanjang gaya Ksh:

# If it's not already enabled
shopt -s extglob
mv -- !(my_folder) my_folder

Anda juga dapat menggunakan sintaks itu di zsh jika Anda mengaktifkan ksh_glob pilihan.


Linux
  1. Penanganan kesalahan dalam skrip Bash

  2. Memahami Kode Kesalahan HTTP dan kesalahan situs web lainnya

  3. kesalahan autoconf di ubuntu 11.04

  1. Apa :-!! dalam kode C?

  2. Cara menggandakan folder dengan tepat

  3. Kesalahan dalam phpMyAdmin setelah memutakhirkan ke v4.8.0:$cfg['TempDir'] (./tmp/) tidak dapat diakses

  1. Pelajari penanganan kesalahan Bash dengan contoh

  2. Instal permata di folder lokal

  3. Tidak dapat dikompilasi dengan make | kesalahan fatal Tidak ada ruang tersisa di perangkat