GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Mv * Ordner (Vermeidung des Fehlers „kann nicht verschoben werden“)?

Für diese Frage gibt es hier bereits Antworten :„mkdir foo; svn mv * foo”

(3 Antworten)
Vor 8 Jahren geschlossen.

Jedes Mal, wenn ich Tausende von Dateien in einen neuen Ordner verschieben möchte, stoße ich immer auf das gleiche Problem.

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

Obwohl ich denke, dass der obige Fehler harmlos ist (oder? ) Ich frage mich, ob es eine Möglichkeit gibt, dies zu vermeiden.

Falls es darauf ankommt, bin ich an einer Lösung in zsh interessiert oder an einer, die über verschiedene Shells hinweg gut funktioniert.

Akzeptierte Antwort:

In zsh mit dem extended_glob Option aktiviert, können Sie ~ verwenden Um Muster von Globs auszuschließen, könnten Sie Folgendes verwenden:

setopt extended_glob
mv -- *~my_folder my_folder

Oder verwenden Sie den Negationsoperator (immer noch mit extended_glob ):

mv -- ^my_folder my_folder

Verwenden Sie geschweifte Klammern, um zu vermeiden, dass der Verzeichnisname zweimal eingegeben wird:

mv -- {^,}my_folder

In Bash (für andere Antwortsuchende, die es verwenden) können Sie erweiterte Globs im Ksh-Stil verwenden:

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

Sie können diese Syntax auch in zsh verwenden wenn Sie ksh_glob aktivieren Option.


Linux
  1. Autoconf-Fehler auf Ubuntu 11.04

  2. Was ist :-!! im C-Code?

  3. So duplizieren Sie einen Ordner genau

  4. Fehler in phpMyAdmin nach Update auf v4.8.0:Auf $cfg['TempDir'] (./tmp/) kann nicht zugegriffen werden

  5. Bash:ls * ohne Ordnergruppierung

Fehlerbehebung bei ERR_TOO_MANY_REDIRECTS

Behebung des Fehlers „Kann nicht in den Anwendungsordner schreiben“ im Vuze BitTorrent-Client

So schützen Sie einen Ordner unter Linux mit einem Kennwort

Mounten Sie einen Remote-Ordner mit sshfs

So komprimieren Sie Ordner unter Linux

Großbuchstabe S in Berechtigungen eines Ordners?